public function view() { if (Config::get('concrete.permissions.model') != 'simple') { $this->setViewObject(new View('/panels/details/page/permissions/advanced')); $this->set('editPermissions', false); if ($this->page->getCollectionInheritance() == 'OVERRIDE') { $this->set('editPermissions', true); } } else { $editAccess = array(); $viewAccess = array(); $c = $this->page; $pk = PagePermissionKey::getByHandle('view_page'); $pk->setPermissionObject($c); $assignments = $pk->getAccessListItems(); foreach($assignments as $asi) { $ae = $asi->getAccessEntityObject(); if ($ae->getAccessEntityTypeHandle() == 'group') { $group = $ae->getGroupObject(); if (is_object($group)) { $viewAccess[] = $group->getGroupID(); } } } $pk = PermissionKey::getByHandle('edit_page_contents'); $pk->setPermissionObject($c); $assignments = $pk->getAccessListItems(); foreach($assignments as $asi) { $ae = $asi->getAccessEntityObject(); if ($ae->getAccessEntityTypeHandle() == 'group') { $group = $ae->getGroupObject(); if (is_object($group)) { $editAccess[] = $group->getGroupID(); } } } $gl = new GroupList(); $gl->sortBy('gID', 'asc'); $gl->includeAllGroups(); $groups = $gl->getResults(); $this->set('editAccess', $editAccess); $this->set('viewAccess', $viewAccess); $this->set('gArray', $groups); } }
public function removePermissions($userOrGroup, $permissions = array()) { if ($this->cInheritPermissionsFrom != 'OVERRIDE') { return; } if (is_array($userOrGroup)) { $pe = GroupCombinationPermissionAccessEntity::getOrCreate($userOrGroup); // group combination } elseif ($userOrGroup instanceof User || $userOrGroup instanceof UserInfo) { $pe = UserPermissionAccessEntity::getOrCreate($userOrGroup); } else { // group; $pe = GroupPermissionAccessEntity::getOrCreate($userOrGroup); } foreach ($permissions as $pkHandle) { $pk = PagePermissionKey::getByHandle($pkHandle); $pk->setPermissionObject($this); $pa = $pk->getPermissionAccessObject(); if (is_object($pa)) { if ($pa->isPermissionAccessInUse()) { $pa = $pa->duplicate(); } $pa->removeListItem($pe); $pt = $pk->getPermissionAssignmentObject(); $pt->assignPermissionAccess($pa); } } }
</div> </div> <?php } ?> <?php } if (!$c->getCollectionPointerID() && (!is_array($workflowList) || count($workflowList) == 0)) { if (is_object($vo)) { if (!$vo->isApproved() && !$c->isEditMode()) { if ($c->isPageDraft()) { print Core::make('helper/concrete/ui')->notify(array('title' => t('Page Draft.'), 'message' => t("This is an un-published draft."), 'type' => 'info', 'icon' => 'exclamation')); } else { $buttons = array(); if ($canApprovePageVersions && !$c->isCheckedOut()) { $pk = \Concrete\Core\Permission\Key\PageKey::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) { $appLabel = t('Submit to Workflow'); }
public function assignPermissions($userOrGroup, $permissions = array(), $accessType = PagePermissionKey::ACCESS_TYPE_INCLUDE) { if ($this->cInheritPermissionsFrom != 'OVERRIDE') { $this->setPermissionsToManualOverride(); $this->clearPagePermissions(); } if (is_array($userOrGroup)) { $pe = GroupCombinationPermissionAccessEntity::getOrCreate($userOrGroup); // group combination } else { if ($userOrGroup instanceof User || $userOrGroup instanceof UserInfo) { $pe = UserPermissionAccessEntity::getOrCreate($userOrGroup); } else { // group; $pe = GroupPermissionAccessEntity::getOrCreate($userOrGroup); } } foreach ($permissions as $pkHandle) { $pk = PagePermissionKey::getByHandle($pkHandle); $pk->setPermissionObject($this); $pa = $pk->getPermissionAccessObject(); if (!is_object($pa)) { $pa = PermissionAccess::create($pk); } else { if ($pa->isPermissionAccessInUse()) { $pa = $pa->duplicate(); } } $pa->addListItem($pe, false, $accessType); $pt = $pk->getPermissionAssignmentObject(); $pt->assignPermissionAccess($pa); } }