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); }
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; }
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) { } }