Exemple #1
0
 public function add()
 {
     $filesystem = new Filesystem();
     if ($this->request->request->has('currentFolder')) {
         $node = Node::getByID($this->request->request->get('currentFolder'));
         if (is_object($node) && $node instanceof FileFolder) {
             $folder = $node;
         }
     }
     if (!isset($folder)) {
         $folder = $filesystem->getRootFolder();
     }
     $permissions = new \Permissions($folder);
     $error = $this->app->make('error');
     $response = new EditResponse();
     $response->setError($error);
     if (!$permissions->canAddTreeSubNode()) {
         $error->add(t('You do not have permission to add a folder here.'));
     }
     if (!$error->has()) {
         $folder = $filesystem->addFolder($folder, $this->request->request->get('folderName'));
         $response->setMessage(t('Folder added.'));
         $response->setAdditionalDataAttribute('folder', $folder);
     }
     $response->outputJSON();
 }
 public function __call($nm, $args)
 {
     if (!isset($this->permissions)) {
         $filesystem = new Filesystem();
         $this->permissions = new \Permissions($filesystem->getRootFolder());
     }
     return call_user_func_array(array($this->permissions, $nm), $args);
 }
Exemple #3
0
 protected function onAfterSearchPreset(Result $result, SavedSearch $preset)
 {
     $filesystem = new Filesystem();
     $root = $filesystem->getRootFolder();
     $breadcrumb = [];
     $breadcrumb[] = ['active' => false, 'name' => $root->getTreeNodeDisplayName(), 'folder' => $root->getTreeNodeID(), 'menu' => $root->getTreeNodeMenu(), 'url' => (string) \URL::to('/ccm/system/file/folder/contents')];
     $node = SearchPreset::getNodeBySavedSearchID($preset->getID());
     $breadcrumb[] = ['active' => true, 'name' => $node->getTreeNodeDisplayName(), 'folder' => $node->getTreeNodeID(), 'menu' => $node->getTreeNodeMenu(), 'url' => false];
     $result->setBreadcrumb($breadcrumb);
     return $result;
 }
Exemple #4
0
 public static function add($filename, $prefix, $data = array(), $fsl = false, $folder = false)
 {
     $db = Loader::db();
     $dh = Loader::helper('date');
     $date = $dh->getOverridableNow();
     if (!is_object($fsl)) {
         $fsl = StorageLocation::getDefault();
     }
     $uID = 0;
     $u = new User();
     if (isset($data['uID'])) {
         $uID = $data['uID'];
     } else {
         if ($u->isRegistered()) {
             $uID = $u->getUserID();
         }
     }
     if (!$folder instanceof FileFolder) {
         $filesystem = new Filesystem();
         $folder = $filesystem->getRootFolder();
     }
     $f = new \Concrete\Core\Entity\File\File();
     $f->storageLocation = $fsl;
     $f->fDateAdded = new Carbon($date);
     $f->folderTreeNodeID = $folder->getTreeNodeID();
     $em = \ORM::entityManager();
     $em->persist($f);
     $em->flush();
     if ($uID > 0) {
         $ui = UserInfo::getByID($uID);
         if (is_object($ui)) {
             $ue = $ui->getEntityObject();
             if (is_object($ue)) {
                 $f->setUser($ue);
             }
         }
     }
     $node = \Concrete\Core\Tree\Node\Type\File::add($f, $folder);
     $fv = Version::add($f, $filename, $prefix, $data);
     $f->versions->add($fv);
     $fve = new \Concrete\Core\File\Event\FileVersion($fv);
     Events::dispatch('on_file_add', $fve);
     $entities = $u->getUserAccessEntityObjects();
     $hasUploader = false;
     foreach ($entities as $obj) {
         if ($obj instanceof FileUploaderPermissionAccessEntity) {
             $hasUploader = true;
         }
     }
     if (!$hasUploader) {
         $u->refreshUserGroups();
     }
     return $fv;
 }
 public static function getGlobal()
 {
     $filesystem = new Filesystem();
     $folder = $filesystem->getRootFolder();
     if (!is_object($folder)) {
         // We don't have the root folder yet for some reason (maybe this is
         // the beginning of an upgrade?)
         $folder = new FileFolder();
         // Just pass in a stub one, it shouldn't matter
     }
     $fsp = new Permissions($folder);
     return $fsp;
 }
 protected function updateFileManager()
 {
     $this->output(t('Migrating to new file manager...'));
     $filesystem = new Filesystem();
     $folder = $filesystem->getRootFolder();
     if (!is_object($folder)) {
         $filesystem = new Filesystem();
         $manager = $filesystem->create();
         $folder = $manager->getRootTreeNodeObject();
         $r = $this->connection->executeQuery('select fID from Files');
         while ($row = $r->fetch()) {
             // This is a performance hack
             $f = new \Concrete\Core\Entity\File\File();
             $f->fID = $row['fID'];
             File::add($f, $folder);
         }
     }
 }
 public function onAfterSavePreset(SavedSearch $search)
 {
     $filesystem = new Filesystem();
     $folder = $filesystem->getRootFolder();
     \Concrete\Core\Tree\Node\Type\SearchPreset::addSearchPreset($search, $folder);
 }
 public function deliverQueryObject()
 {
     if (!isset($this->parent)) {
         $filesystem = new Filesystem();
         $this->parent = $filesystem->getRootFolder();
     }
     $this->query->andWhere('n.treeNodeParentID = :treeNodeParentID');
     $this->query->setParameter('treeNodeParentID', $this->parent->getTreeNodeID());
     return parent::deliverQueryObject();
 }
 public function install_site_permissions()
 {
     $g1 = Group::getByID(GUEST_GROUP_ID);
     $g2 = Group::getByID(REGISTERED_GROUP_ID);
     $g3 = Group::getByID(ADMIN_GROUP_ID);
     $filesystem = new Filesystem();
     $folder = $filesystem->getRootFolder();
     $folder->assignPermissions($g1, ['view_file_folder_file']);
     $folder->assignPermissions($g3, ['view_file_folder_file', 'search_file_folder', 'edit_file_folder', 'edit_file_folder_file_properties', 'edit_file_folder_file_contents', 'copy_file_folder_files', 'edit_file_folder_permissions', 'delete_file_folder_files', 'delete_file_folder', 'add_file']);
     $u = new User();
     $u->saveConfig('NEWSFLOW_LAST_VIEWED', 'FIRSTRUN');
     // login
     $login = Page::getByPath('/login', "RECENT");
     $login->assignPermissions($g1, ['view_page']);
     // register
     $register = Page::getByPath('/register', "RECENT");
     $register->assignPermissions($g1, ['view_page']);
     // dashboard
     $dashboard = Page::getByPath('/dashboard', "RECENT");
     $dashboard->assignPermissions($g3, ['view_page']);
     // drafts
     $drafts = Page::getByPath('/!drafts', "RECENT");
     $drafts->assignPermissions($g3, ['view_page', 'view_page_versions', 'view_page_in_sitemap', 'preview_page_as_user', 'edit_page_properties', 'edit_page_contents', 'edit_page_speed_settings', 'edit_page_multilingual_settings', 'edit_page_theme', 'edit_page_template', 'edit_page_page_type', 'edit_page_permissions', 'delete_page', 'delete_page_versions', 'approve_page_versions', 'add_subpage', 'move_or_copy_page', 'schedule_page_contents_guest_access']);
     $home = Page::getByID(1, "RECENT");
     $home->assignPermissions($g1, ['view_page']);
     $home->assignPermissions($g3, ['view_page_versions', 'view_page_in_sitemap', 'preview_page_as_user', 'edit_page_properties', 'edit_page_contents', 'edit_page_speed_settings', 'edit_page_multilingual_settings', 'edit_page_theme', 'edit_page_template', 'edit_page_page_type', 'edit_page_permissions', 'delete_page', 'delete_page_versions', 'approve_page_versions', 'add_subpage', 'move_or_copy_page', 'schedule_page_contents_guest_access']);
     $config = \Core::make('config/database');
     $config->save('concrete.security.token.jobs', Core::make('helper/validation/identifier')->getString(64));
     $config->save('concrete.security.token.encryption', Core::make('helper/validation/identifier')->getString(64));
     $config->save('concrete.security.token.validation', Core::make('helper/validation/identifier')->getString(64));
     // group permissions
     $tree = GroupTree::get();
     $node = $tree->getRootTreeNodeObject();
     $permissions = ['search_users_in_group', 'edit_group', 'assign_group', 'add_sub_group', 'edit_group_permissions'];
     $adminGroupEntity = GroupPermissionAccessEntity::getOrCreate($g3);
     foreach ($permissions as $pkHandle) {
         $pk = PermissionKey::getByHandle($pkHandle);
         $pk->setPermissionObject($node);
         $pa = PermissionAccess::create($pk);
         $pa->addListItem($adminGroupEntity);
         $pt = $pk->getPermissionAssignmentObject();
         $pt->assignPermissionAccess($pa);
     }
     // conversation permissions
     $messageAuthorEntity = ConversationMessageAuthorEntity::getOrCreate();
     $guestEntity = GroupPermissionAccessEntity::getOrCreate($g1);
     $registeredEntity = GroupPermissionAccessEntity::getOrCreate($g2);
     $pk = PermissionKey::getByHandle('add_conversation_message');
     $pa = PermissionAccess::create($pk);
     $pa->addListItem($guestEntity);
     $pt = $pk->getPermissionAssignmentObject();
     $pt->assignPermissionAccess($pa);
     $pk = PermissionKey::getByHandle('add_conversation_message_attachments');
     $pa = PermissionAccess::create($pk);
     $pa->addListItem($guestEntity);
     $pt = $pk->getPermissionAssignmentObject();
     $pt->assignPermissionAccess($pa);
     $pk = PermissionKey::getByHandle('edit_conversation_message');
     $pa = PermissionAccess::create($pk);
     $pa->addListItem($messageAuthorEntity);
     $pa->addListItem($adminGroupEntity);
     $pt = $pk->getPermissionAssignmentObject();
     $pt->assignPermissionAccess($pa);
     $pk = PermissionKey::getByHandle('delete_conversation_message');
     $pa = PermissionAccess::create($pk);
     $pa->addListItem($messageAuthorEntity);
     $pa->addListItem($adminGroupEntity);
     $pt = $pk->getPermissionAssignmentObject();
     $pt->assignPermissionAccess($pa);
     $pk = PermissionKey::getByHandle('rate_conversation_message');
     $pa = PermissionAccess::create($pk);
     $pa->addListItem($registeredEntity);
     $pa->addListItem($adminGroupEntity);
     $pt = $pk->getPermissionAssignmentObject();
     $pt->assignPermissionAccess($pa);
     $permissions = ['edit_conversation_permissions', 'flag_conversation_message', 'approve_conversation_message'];
     foreach ($permissions as $pkHandle) {
         $pk = PermissionKey::getByHandle($pkHandle);
         $pa = PermissionAccess::create($pk);
         $pa->addListItem($adminGroupEntity);
         $pt = $pk->getPermissionAssignmentObject();
         $pt->assignPermissionAccess($pa);
     }
     // notification
     $adminUserEntity = UserEntity::getOrCreate(\UserInfo::getByID(USER_SUPER_ID));
     $pk = PermissionKey::getByHandle('notify_in_notification_center');
     $pa = PermissionAccess::create($pk);
     $pa->addListItem($adminUserEntity);
     $pa->addListItem($adminGroupEntity);
     $pt = $pk->getPermissionAssignmentObject();
     $pt->assignPermissionAccess($pa);
     try {
         Core::make('helper/file')->makeExecutable(DIR_BASE_CORE . '/bin/concrete5', 'all');
     } catch (\Exception $x) {
     }
 }