public function copyFromDefaultsToGathering(PermissionKey $pk) { $db = Loader::db(); $paID = $pk->getPermissionAccessID(); if ($paID) { $db = Loader::db(); $db->Replace('GatheringPermissionAssignments', array('gaID' => $this->permissionObject->getGatheringID(), 'paID' => $paID, 'pkID' => $this->getPermissionKeyID()), array('gaID', 'pkID'), true); } }
public static function addValidate(PermissionKey $pk, $valid) { $cl = CacheLocal::get(); if ($cl->enabled) { $object = $pk->getPermissionObject(); if (is_object($object)) { $identifier = 'pk:' . $pk->getPermissionKeyHandle() . ':' . $object->getPermissionObjectIdentifier(); } else { $identifier = 'pk:' . $pk->getPermissionKeyHandle(); } $cl->cache[$identifier] = $valid; } }
public function getPermissionAccessObject() { $db = Loader::db(); if ($this->permissionObjectToCheck instanceof Block) { $co = $this->permissionObjectToCheck->getBlockCollectionObject(); $arHandle = $this->permissionObjectToCheck->getAreaHandle(); $paID = $db->GetOne('select paID from BlockPermissionAssignments where cID = ? and cvID = ? and bID = ? and pkID = ? ' . $filterString, array($co->getCollectionID(), $co->getVersionID(), $this->permissionObject->getBlockID(), $this->pk->getPermissionKeyID())); if ($paID) { $pae = PermissionAccess::getByID($paID, $this->pk, false); } } else { if ($this->permissionObjectToCheck instanceof Area && isset($this->inheritedAreaPermissions[$this->pk->getPermissionKeyHandle()])) { $pk = PermissionKey::getByHandle($this->inheritedAreaPermissions[$this->pk->getPermissionKeyHandle()]); $pk->setPermissionObject($this->permissionObjectToCheck); $pae = $pk->getPermissionAccessObject(); } else { if ($this->permissionObjectToCheck instanceof Page && isset($this->inheritedPagePermissions[$this->pk->getPermissionKeyHandle()])) { $pk = PermissionKey::getByHandle($this->inheritedPagePermissions[$this->pk->getPermissionKeyHandle()]); $pk->setPermissionObject($this->permissionObjectToCheck); $pae = $pk->getPermissionAccessObject(); } } } return $pae; }
public function getPermissionAccessObject() { $db = Loader::db(); if ($this->permissionObjectToCheck instanceof Area) { $r = $db->GetOne('select paID from AreaPermissionAssignments where cID = ? and arHandle = ? and pkID = ? ' . $filterString, array($this->permissionObjectToCheck->getCollectionID(), $this->permissionObjectToCheck->getAreaHandle(), $this->pk->getPermissionKeyID())); if ($r) { return PermissionAccess::getByID($r, $this->pk, false); } } else { if (isset($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()])) { // this is a page $pk = PermissionKey::getByHandle($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()]); $pk->setPermissionObject($this->permissionObjectToCheck); $pae = $pk->getPermissionAccessObject(); return $pae; } else { if (isset($this->blockTypeInheritedPermissions[$this->pk->getPermissionKeyHandle()])) { $pk = PermissionKey::getByHandle($this->blockTypeInheritedPermissions[$this->pk->getPermissionKeyHandle()]); $pae = $pk->getPermissionAccessObject(); return $pae; } } } return false; }
/** * We take any permissions function run on the permissions class and send it into the category * object */ public function __call($f, $a) { if (!is_object($this->response)) { // handles task permissions $permission = Loader::helper('text')->uncamelcase($f); } if (count($a) > 0) { if (is_object($this->response)) { $r = call_user_func_array(array($this->response, $f), $a); } else { $pk = PermissionKey::getByHandle($permission); $r = call_user_func_array(array($pk, $f), $a); } } else { if (is_object($this->response)) { $r = $this->response->{$f}(); } else { $pk = PermissionKey::getByHandle($permission); if (is_object($pk)) { $r = $pk->validate(); } else { throw new Exception(t('Unable to get permission key for %s', $permission)); } } } if (is_array($r) || is_object($r)) { return $r; } else { if ($r) { return 1; } else { return 0; } } }
public function trigger() { $page = Page::getByID($this->cID); $pk = PermissionKey::getByID($this->pkID); $pk->setPermissionObject($page); return parent::trigger($pk); }
public function save() { if (Loader::helper('validation/token')->validate('save_permissions')) { $fs = FileSet::getGlobal(); $tp = new TaskPermission(); if ($tp->canAccessTaskPermissions()) { $permissions = PermissionKey::getList('file_set'); foreach ($permissions as $pk) { $pk->setPermissionObject($fs); $paID = $_POST['pkID'][$pk->getPermissionKeyID()]; $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = PermissionAccess::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } $this->redirect('/dashboard/system/permissions/files', 'updated'); } } else { $this->error->add(Loader::helper("validation/token")->getErrorMessage()); } }
public function save() { if (Loader::helper('validation/token')->validate('save_permissions')) { $tp = new TaskPermission(); if ($tp->canAccessTaskPermissions()) { $permissions = PermissionKey::getList('sitemap'); $permissions = array_merge($permissions, PermissionKey::getList('marketplace_newsflow')); $permissions = array_merge($permissions, PermissionKey::getList('admin')); foreach ($permissions as $pk) { $paID = $_POST['pkID'][$pk->getPermissionKeyID()]; $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = PermissionAccess::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } $this->redirect('/dashboard/system/permissions/tasks', 'updated'); } } else { $this->error->add(Loader::helper("validation/token")->getErrorMessage()); } }
/** Executes the job. * @return string Returns a string describing the job result in case of success. * @throws Exception Throws an exception in case of errors. */ public function run() { Cache::disableCache(); Cache::disableLocalCache(); try { $db = Loader::db(); $instances = array( 'navigation' => Loader::helper('navigation'), 'dashboard' => Loader::helper('concrete/dashboard'), 'view_page' => PermissionKey::getByHandle('view_page') ); $rsPages = $db->query('SELECT cID FROM Pages WHERE (cID > 1) ORDER BY cID'); $relName = ltrim(SITEMAPXML_FILE, '\\/'); $osName = rtrim(DIR_BASE, '\\/') . '/' . $relName; $urlName = rtrim(BASE_URL . DIR_REL, '\\/') . '/' . $relName; if(!file_exists($osName)) { @touch($osName); } if(!is_writable($osName)) { throw new Exception(t('The file %s is not writable', $osName)); } if(!$hFile = fopen($osName, 'w')) { throw new Exception(t('Cannot open file %s', $osName)); } if(!@fprintf($hFile, '<?xml version="1.0" encoding="%s"?>' . self::EOL . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">', APP_CHARSET)) { throw new Exception(t('Error writing header of %s', $osName)); } $addedPages = 0; if(self::AddPage($hFile, 1, $instances)) { $addedPages++; } while($rowPage = $rsPages->FetchRow()) { if(self::AddPage($hFile, intval($rowPage['cID']), $instances)) { $addedPages++; } } $rsPages->Close(); unset($rsPages); if(!@fwrite($hFile, self::EOL . '</urlset>')) { throw new Exception(t('Error writing footer of %s', $osName)); } @fflush($hFile); @fclose($hFile); unset($hFile); return t('%1$s file saved (%2$d pages).', $urlName, $addedPages); } catch(Exception $x) { if(isset($rsPages) && $rsPages) { $rsPages->Close(); $rsPages = null; } if(isset($hFile) && $hFile) { @fflush($hFile); @ftruncate($hFile, 0); @fclose($hFile); $hFile = null; } throw $x; } }
/** * Triggers a workflow request, queries a permission key to see what workflows are attached to it * and initiates them. * * @param \PermissionKey $pk * * @return optional WorkflowProgress */ protected function triggerRequest(\PermissionKey $pk) { if (!$this->wrID) { $this->save(); } if (!$pk->canPermissionKeyTriggerWorkflow()) { throw new Exception(t('This permission key cannot start a workflow.')); } $pa = $pk->getPermissionAccessObject(); $workflows = array(); $workflowsStarted = 0; if (is_object($pa)) { $workflows = $pa->getWorkflows(); foreach ($workflows as $wf) { if ($wf->validateTrigger($this)) { $this->addWorkflowProgress($wf); ++$workflowsStarted; } } } if ($workflowsStarted == 0) { $defaultWorkflow = new EmptyWorkflow(); $wp = $this->addWorkflowProgress($defaultWorkflow); return $wp->getWorkflowProgressResponseObject(); } }
/** * @see \C5TL\Parser\DynamicItem::parseManual() */ public function parseManual(\Gettext\Translations $translations, $concrete5version) { if (class_exists('\\PermissionKeyCategory', true) && method_exists('\\PermissionKeyCategory', 'getList')) { foreach (\PermissionKeyCategory::getList() as $pkc) { $pkcHandle = $pkc->getPermissionKeyCategoryHandle(); foreach (\PermissionKey::getList($pkcHandle) as $pk) { $this->addTranslation($translations, $pk->getPermissionKeyName(), 'PermissionKeyName'); $this->addTranslation($translations, $pk->getPermissionKeyDescription(), 'PermissionKeyDescription'); } } } }
public function run() { $this->x = new SimpleXMLElement("<concrete5-cif></concrete5-cif>"); $this->x->addAttribute('version', '1.0'); // First, attribute categories AttributeKeyCategory::exportList($this->x); // attribute types AttributeType::exportList($this->x); // then block types BlockTypeList::exportList($this->x); // now attribute keys (including user) AttributeKey::exportList($this->x); // now attribute keys (including user) AttributeSet::exportList($this->x); // now theme PageTheme::exportList($this->x); // now packages PackageList::export($this->x); // permission access entity types PermissionAccessEntityType::exportList($this->x); // now task permissions PermissionKey::exportList($this->x); // workflow types WorkflowType::exportList($this->x); // now jobs Loader::model('job'); Job::exportList($this->x); // now single pages $singlepages = $this->x->addChild("singlepages"); $db = Loader::db(); $r = $db->Execute('select cID from Pages where cFilename is not null and cFilename <> "" and cID not in (select cID from Stacks) order by cID asc'); while ($row = $r->FetchRow()) { $pc = Page::getByID($row['cID'], 'RECENT'); $pc->export($singlepages); } // now page types CollectionType::exportList($this->x); // now stacks/global areas Loader::model('stack/list'); StackList::export($this->x); // now content pages $pages = $this->x->addChild("pages"); $db = Loader::db(); $r = $db->Execute('select Pages.cID from Pages left join ComposerDrafts on Pages.cID = ComposerDrafts.cID where ComposerDrafts.cID is null and cIsTemplate = 0 and cFilename is null or cFilename = "" order by cID asc'); while ($row = $r->FetchRow()) { $pc = Page::getByID($row['cID'], 'RECENT'); $pc->export($pages); } Loader::model("system/captcha/library"); SystemCaptchaLibrary::exportList($this->x); Config::exportList($this->x); }
public function remove_tree() { if ($this->token->validate('remove_tree')) { $tree = Tree::getByID(Loader::helper('security')->sanitizeInt($_REQUEST['treeID'])); $treeType = $tree->getTreeTypeObject(); if (is_object($treeType)) { $treeTypeHandle = $treeType->getTreeTypeHandle(); } if (is_object($tree) && $treeTypeHandle == 'topic') { if (\PermissionKey::getByHandle('remove_topic_tree')->validate()) { $tree->delete(); $this->redirect('/dashboard/system/attributes/topics', 'tree_deleted'); } } } }
/** Executes the job. * @return string Returns a string describing the job result in case of success. * @throws Exception Throws an exception in case of errors. */ public function run() { Cache::disableCache(); Cache::disableLocalCache(); try { $db = Loader::db(); $instances = array('navigation' => Loader::helper('navigation'), 'dashboard' => Loader::helper('concrete/dashboard'), 'view_page' => PermissionKey::getByHandle('view_page'), 'guestGroup' => Group::getByID(GUEST_GROUP_ID), 'now' => new DateTime('now'), 'ak_exclude_sitemapxml' => CollectionAttributeKey::getByHandle('exclude_sitemapxml'), 'ak_sitemap_changefreq' => CollectionAttributeKey::getByHandle('sitemap_changefreq'), 'ak_sitemap_priority' => CollectionAttributeKey::getByHandle('sitemap_priority')); $instances['guestGroupAE'] = array(GroupPermissionAccessEntity::getOrCreate($instances['guestGroup'])); $xmlDoc = new SimpleXMLElement('<' . '?xml version="1.0" encoding="' . APP_CHARSET . '"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" />'); $rs = Loader::db()->Query('SELECT cID FROM Pages'); while ($row = $rs->FetchRow()) { self::addPage($xmlDoc, intval($row['cID']), $instances); } $rs->Close(); Events::fire('on_sitemap_xml_ready', $xmlDoc); $dom = dom_import_simplexml($xmlDoc)->ownerDocument; $dom->formatOutput = true; $addedPages = count($xmlDoc->url); $relName = ltrim(SITEMAPXML_FILE, '\\/'); $osName = rtrim(DIR_BASE, '\\/') . '/' . $relName; $urlName = rtrim(BASE_URL . DIR_REL, '\\/') . '/' . $relName; if (!file_exists($osName)) { @touch($osName); } if (!is_writable($osName)) { throw new Exception(t('The file %s is not writable', $osName)); } if (!($hFile = @fopen($osName, 'w'))) { throw new Exception(t('Cannot open file %s', $osName)); } if (!@fwrite($hFile, $dom->saveXML())) { throw new Exception(t('Error writing to file %s', $osName)); } @fflush($hFile); @fclose($hFile); unset($hFile); return t('%1$s file saved (%2$d pages).', sprintf('<a href="%s" target="_blank">%s</a>', $urlName, preg_replace('/^https?:\\/\\//i', '', $urlName)), $addedPages); } catch (Exception $x) { if (isset($hFile) && $hFile) { @fflush($hFile); @ftruncate($hFile, 0); @fclose($hFile); $hFile = null; } throw $x; } }
public function canGuestsViewThisBlock() { $pk = PermissionKey::getByHandle('view_block'); $pk->setPermissionObject($this->getPermissionObject()); $gg = GroupPermissionAccessEntity::getOrCreate(Group::getByID(GUEST_GROUP_ID)); $accessEntities = array($gg); $valid = false; $list = $pk->getAccessListItems(PermissionKey::ACCESS_TYPE_ALL, $accessEntities); foreach ($list as $l) { if ($l->getAccessType() == PermissionKey::ACCESS_TYPE_INCLUDE) { $valid = true; } if ($l->getAccessType() == PermissionKey::ACCESS_TYPE_EXCLUDE) { $valid = false; } } return $valid; }
public function exportAll() { $this->x = $this->getXMLRoot(); // First, attribute categories AttributeKeyCategory::exportList($this->x); // attribute types AttributeType::exportList($this->x); // then block types BlockTypeList::exportList($this->x); // now attribute keys (including user) AttributeKey::exportList($this->x); // now attribute keys (including user) AttributeSet::exportList($this->x); // now theme PageTheme::exportList($this->x); // now packages PackageList::export($this->x); // permission access entity types PermissionAccessEntityType::exportList($this->x); // now task permissions PermissionKey::exportList($this->x); // workflow types WorkflowType::exportList($this->x); // now jobs Loader::model('job'); Job::exportList($this->x); // now single pages $singlepages = $this->x->addChild("singlepages"); $db = Loader::db(); $r = $db->Execute('select cID from Pages where cFilename is not null and cFilename <> "" and cID not in (select cID from Stacks) order by cID asc'); while ($row = $r->FetchRow()) { $pc = Page::getByID($row['cID'], 'RECENT'); $pc->export($singlepages); } // now page types CollectionType::exportList($this->x); // now stacks/global areas Loader::model('stack/list'); StackList::export($this->x); $this->exportPages($this->x); Loader::model("system/captcha/library"); SystemCaptchaLibrary::exportList($this->x); Config::exportList($this->x); }
public function run() { $j = Job::getByHandle('index_search_all'); if (!is_object($j)) { Job::installByHandle('index_search_all'); } $js = JobSet::getByName('Default'); if (!is_object($js)) { $js = JobSet::add('Default'); } $js->clearJobs(); $jobs = Job::getList(); foreach($jobs as $j) { if (!$j->supportsQueue()) { $js->addJob($j); } } // create the view page in sitemap permission $rpk = PermissionKey::getByHandle('view_page'); $vpk = PermissionKey::getByHandle('view_page_in_sitemap'); if (!is_object($vpk)) { $vpk = PermissionKey::add('page', 'view_page_in_sitemap', 'View Page in Sitemap', 'View Page in Sitemap and Intelligent Search.', false, false); } // now we have to get a list of all pages in the site that have their own permissions set. $db = Loader::db(); $r = $db->Execute('select cID from Pages where cInheritPermissionsFrom = "OVERRIDE" order by cID asc'); while ($row = $r->Fetchrow()) { $c = Page::getByID($row['cID']); if (is_object($c) && !$c->isError()) { $rpk->setPermissionObject($c); $vpk->setPermissionObject($c); $rpa = $rpk->getPermissionAccessObject(); if (is_object($rpa)) { $pt = $vpk->getPermissionAssignmentObject(); if (is_object($pt)) { $pt->clearPermissionAssignment(); $pt->assignPermissionAccess($rpa); } } } } }
public function run() { $bt = BlockType::getByHandle('guestbook'); if (is_object($bt)) { $bt->refresh(); } // add user export users task permission $pk = PermissionKey::getByHandle('access_user_search_export'); if (!$pk instanceof PermissionKey) { $pk = PermissionKey::add('user', 'access_user_search_export', 'Export Site Users', 'Controls whether a user can export site users or not', false, false); $pa = $pk->getPermissionAccessObject(); if (!is_object($pa)) { $pa = PermissionAccess::create($pk); } $adminGroup = Group::getByID(ADMIN_GROUP_ID); //Make sure "Adminstrators" group still exists if ($adminGroup) { $adminGroupEntity = GroupPermissionAccessEntity::getOrCreate($adminGroup); $pa->addListItem($adminGroupEntity); $pt = $pk->getPermissionAssignmentObject(); $pt->assignPermissionAccess($pa); } } if (!Config::get('SECURITY_TOKEN_JOBS')) { Config::save('SECURITY_TOKEN_JOBS', Loader::helper('validation/identifier')->getString(64)); } if (!Config::get('SECURITY_TOKEN_ENCRYPTION')) { Config::save('SECURITY_TOKEN_ENCRYPTION', Loader::helper('validation/identifier')->getString(64)); } if (!Config::get('SECURITY_TOKEN_VALIDATION')) { Config::save('SECURITY_TOKEN_VALIDATION', Loader::helper('validation/identifier')->getString(64)); } $sp = Page::getByPath('/dashboard/system/mail/method/test_settings'); if (!is_object($sp) || $sp->isError()) { $sp = SinglePage::add('/dashboard/system/mail/method/test_settings'); $sp->update(array('cName' => t('Test Mail Settings'))); $sp->setAttribute('meta_keywords', 'test smtp, test mail'); } }
public function approve(WorkflowProgress $wp) { $c = Page::getByID($this->getRequestedPageID()); $ps = $this->getPagePermissionSet(); $assignments = $ps->getPermissionAssignments(); foreach ($assignments as $pkID => $paID) { $pk = PermissionKey::getByID($pkID); $pk->setPermissionObject($c); $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = PermissionAccess::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } $c->refreshCache(); $wpr = new WorkflowProgressResponse(); $wpr->setWorkflowProgressResponseURL(BASE_URL . DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $c->getCollectionID()); return $wpr; }
<?php defined('C5_EXECUTE') or die("Access Denied."); $pk = PermissionKey::getByHandle('empty_trash'); if (!$pk->validate()) { die(t("Access Denied.")); } $trash = Page::getByPath(Config::get('concrete.paths.trash')); $i = 0; if (is_object($trash) && !$trash->isError()) { $pl = new PageList(); $pl->filterByParentID($trash->getCollectionID()); $pl->includeInactivePages(); $pl->setPageVersionToRetrieve(\Concrete\Core\Page\PageList::PAGE_VERSION_RECENT); $pages = $pl->getResults(); foreach ($pages as $pc) { $cp = new Permissions($pc); if ($cp->canDeletePage()) { ++$i; $pc->delete(); } } } $message = t2('%d page deleted.', '%d pages deleted.', $i, $i); $obj = new stdClass(); $obj->message = $message; echo Loader::helper('json')->encode($obj);
<?php defined('C5_EXECUTE') or die("Access Denied."); $app = Concrete\Core\Support\Facade\Application::getFacadeApplication(); $form = $app->make('helper/form'); $ek = PermissionKey::getByHandle('edit_user_properties'); $ik = PermissionKey::getByHandle('activate_user'); $dk = PermissionKey::getByHandle('delete_user'); ?> <script type="text/template" data-template="search-results-table-body"> <% _.each(items, function (user) {%> <tr> <td><span class="ccm-search-results-checkbox"><input type="checkbox" class="ccm-flat-checkbox" data-user-id="<%-user.uID%>" data-user-name="<%-user.uName%>" data-user-email="<%-user.uEmail%>" data-search-checkbox="individual" value="<%-user.uID%>" /></span></td> <% for (i = 0; i < user.columns.length; i++) { var column = user.columns[i]; %> <td><%= column.value %></td> <% } %> </tr> <% }); %> </script> <div data-search-element="wrapper"></div> <div data-search-element="results"> <table border="0" cellspacing="0" cellpadding="0" class="ccm-search-results-table"> <thead> </thead> <tbody>
<?php defined('C5_EXECUTE') or die("Access Denied."); ?> <?php $cat = PermissionKeyCategory::getByHandle('basic_workflow'); ?> <table class="ccm-permission-grid"> <?php $permissions = PermissionKey::getList('basic_workflow'); foreach ($permissions as $pk) { $pk->setPermissionObject($workflow); ?> <tr> <td class="ccm-permission-grid-name" id="ccm-permission-grid-name-<?php echo $pk->getPermissionKeyID(); ?> "><strong><?php if ($enablePermissions) { ?> <a dialog-title="<?php echo $pk->getPermissionKeyDisplayName(); ?> " data-pkID="<?php echo $pk->getPermissionKeyID(); ?> " data-paID="<?php echo $pk->getPermissionAccessID(); ?>
<?php defined('C5_EXECUTE') or die("Access Denied."); ?> <?php $pk = PermissionKey::getByID($_REQUEST['pkID']); $pk->setPermissionObject($fileset); ?> <?php Loader::element("permission/detail", array('permissionKey' => $pk)); ?> <script type="text/javascript"> var ccm_permissionDialogURL = '<?php echo REL_DIR_FILES_TOOLS_REQUIRED; ?> /permissions/dialogs/file_set'; </script>
<?php defined('C5_EXECUTE') or die("Access Denied."); $searchInstance = Loader::helper('text')->entities($_REQUEST['searchInstance']); if (!strlen($searchInstance)) { $searchInstance = 'user'; } $form = Loader::helper('form'); $ih = Loader::helper('concrete/interface'); $tp = new TaskPermission(); $token = Loader::helper('validation/token'); $sk = PermissionKey::getByHandle('access_user_search'); $gk = PermissionKey::getByHandle('assign_user_groups'); if (!$gk->validate()) { die(t("Access Denied.")); } $users = array(); if (is_array($_REQUEST['uID'])) { foreach ($_REQUEST['uID'] as $uID) { $ui = UserInfo::getByID($uID); $users[] = $ui; } } foreach ($users as $ui) { if (!$sk->validate($ui)) { die(t("Access Denied.")); } } Loader::model('search/group'); $gl = new GroupSearch(); $gl->setItemsPerPage(-1);
public function overridePagePermissions() { $db = Loader::db(); $cID = $this->getCollectionID(); $v = array($cID, $this->getAreaHandle()); // update the Area record itself. Hopefully it's been created. $db->query("update Areas set arOverrideCollectionPermissions = 1, arInheritPermissionsFromAreaOnCID = 0 where arID = ?", array($this->getAreaID())); // copy permissions from the page to the area $permissions = PermissionKey::getList('area'); foreach ($permissions as $pk) { $pk->setPermissionObject($this); $pk->copyFromPageToArea(); } // finally, we rescan subareas so that, if they are inheriting up the tree, they inherit from this place $this->arInheritPermissionsFromAreaOnCID = $this->getCollectionID(); // we don't need to actually save this on the area, but we need it for the rescan function $this->arOverrideCollectionPermissions = 1; // to match what we did above - useful for the rescan functions below $acobj = $this->getAreaCollectionObject(); if ($acobj->isMasterCollection()) { // if we're updating the area on a master collection we need to go through to all areas set on subpages that aren't set to override to change them to inherit from this area $this->rescanSubAreaPermissionsMasterCollection($acobj); } else { $this->rescanSubAreaPermissions(); } }
?> <div class="<?php if ($task == 'bulk_add_access') { ?> form-inline<?php } ?> "> <table class="ccm-permission-grid table"> <tr> <td class="ccm-permission-grid-name" id="ccm-permission-grid-name-0"> <select name="pkID"> <?php $permissions = PermissionKey::getList('page'); foreach ($permissions as $pk) { ?> <option value="<?php echo $pk->getPermissionKeyID(); ?> "><?php echo $pk->getPermissionKeyDisplayName(); ?> </option> <?php } ?> </select> </td> <td id="ccm-permission-grid-cell-0" class="ccm-permission-grid-cell-value" style="vertical-align: middle">
"> <h5><?php echo t('Version Comments'); ?> </h5> <div class="ccm-panel-check-in-comments"><textarea name="comments" id="ccm-check-in-comments" /></textarea></div> <?php if ($cp->canApprovePageVersions()) { if ($c->isPageDraft()) { $publishTitle = t('Publish Page'); } else { $publishTitle = t('Publish Changes'); $pk = PermissionKey::getByHandle('approve_page_versions'); $pk->setPermissionObject($c); $pa = $pk->getPermissionAccessObject(); $workflows = array(); $canApproveWorkflow = true; if (is_object($pa)) { $workflows = $pa->getWorkflows(); } foreach ($workflows as $wf) { if (!$wf->canApproveWorkflow()) { $canApproveWorkflow = false; } } if (count($workflows) > 0 && !$canApproveWorkflow) { $publishTitle = t('Submit to Workflow'); }
/** * Returns an array of package items (e.g. blocks, themes) */ public function getPackageItems() { $items = array(); Loader::model('single_page'); Loader::library('mail/importer'); Loader::model('job'); Loader::model('collection_types'); Loader::model('system/captcha/library'); Loader::model('system/antispam/library'); $items['attribute_categories'] = AttributeKeyCategory::getListByPackage($this); $items['permission_categories'] = PermissionKeyCategory::getListByPackage($this); $items['permission_access_entity_types'] = PermissionAccessEntityType::getListByPackage($this); $items['attribute_keys'] = AttributeKey::getListByPackage($this); $items['attribute_sets'] = AttributeSet::getListByPackage($this); $items['group_sets'] = GroupSet::getListByPackage($this); $items['page_types'] = CollectionType::getListByPackage($this); $items['mail_importers'] = MailImporter::getListByPackage($this); $items['configuration_values'] = Config::getListByPackage($this); $items['block_types'] = BlockTypeList::getByPackage($this); $items['page_themes'] = PageTheme::getListByPackage($this); $items['permissions'] = PermissionKey::getListByPackage($this); $items['single_pages'] = SinglePage::getListByPackage($this); $items['attribute_types'] = AttributeType::getListByPackage($this); $items['captcha_libraries'] = SystemCaptchaLibrary::getListByPackage($this); $items['antispam_libraries'] = SystemAntispamLibrary::getListByPackage($this); $items['jobs'] = Job::getListByPackage($this); $items['workflow_types'] = WorkflowType::getListByPackage($this); ksort($items); return $items; }
</a> <button onclick="$('#ccm-permission-list-form').submit()" class="btn primary ccm-button-right"><?php echo t('Save'); ?> <i class="icon-ok-sign icon-white"></i></button> </div> <?php } ?> <?php } else { ?> <?php $pkl = PermissionKey::getList('page'); $pk = $pkl[0]; ?> <p><?php echo t('You may only set specific permissions for pages if they are set to override defaults or their parent pages.'); ?> </p> <?php } ?> <div id="ccm-page-permissions-confirm-dialog" style="display: none"> <?php echo t('Changing this setting will affect this page immediately. Are you sure?'); ?>
public function getPermissionAccessObject(PermissionKey $pk) { $pa = $this->permissionAssignments[$pk->getPermissionKeyID()]; return $pa; }