public function save() { if (Loader::helper('validation/token')->validate('save_permissions')) { $root = (new Filesystem())->getRootFolder(); $tp = new TaskPermission(); if ($tp->canAccessTaskPermissions()) { $permissions = PermissionKey::getList('file_folder'); foreach ($permissions as $pk) { $pk->setPermissionObject($root); $paID = $_POST['pkID'][$pk->getPermissionKeyID()]; $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = Access::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } $this->redirect('/dashboard/system/files/permissions', 'updated'); } } else { $this->error->add(Loader::helper("validation/token")->getErrorMessage()); } }
public function getPermissionAccessObject() { $cache = Core::make('cache/request'); $identifier = sprintf('permission/assignment/access/%s/%s', $this->pk->getPermissionKeyHandle(), $this->getPermissionObject()->getPermissionObjectIdentifier()); $item = $cache->getItem($identifier); if (!$item->isMiss()) { return $item->get(); } $db = Loader::db(); $r = $db->GetOne('select paID from PagePermissionAssignments where cID = ? and pkID = ?', array($this->getPermissionObject()->getPermissionsCollectionID(), $this->pk->getPermissionKeyID())); $pa = $r ? Access::getByID($r, $this->pk, false) : null; if (is_object($pa)) { if ($this->getPermissionObject()->isPageDraft() && $this->getPermissionObject()->getCollectionInheritance() == 'PARENT' && is_object($pageType = $this->getPermissionObject()->getPageTypeObject()) && isset($this->inheritedPageTypeDraftPermissions[$this->pk->getPermissionKeyHandle()])) { $pk = Key::getByHandle($this->inheritedPageTypeDraftPermissions[$this->pk->getPermissionKeyHandle()]); $pk->setPermissionObject($pageType); $access = $pk->getPermissionAccessObject(); if (is_object($access)) { $list_items = $access->getAccessListItems(); $pa->setListItems($list_items); } } } $cache->save($item->set($pa)); return $pa; }
public function handlePageUpdate($event) { $page = $event->getPageObject(); $pk = PermissionKey::getByHandle('view_page'); $pk->setPermissionObject($page); $list = $pk->getAccessListItems(); foreach ($list as $pa) { $pae = $pa->getAccessEntityObject(); if ($pae->getAccessEntityTypeHandle() == 'group') { if ($pae->getGroupObject()->getGroupID() == GUEST_GROUP_ID) { $pd = $pa->getPermissionDurationObject(); if (!is_object($pd)) { $pd = new PermissionDuration(); } $publicDate = strtotime($page->getCollectionDatePublic()); $pd->setStartDateAllDay(0); $pd->setEndDateAllDay(0); $pd->setStartDate($dateStart = date('Y-m-d H:i:s', $publicDate)); $pd->save(); $paa = PermissionAccess::getByID($pa->paID, $pk); $paa->addListItem($pae, $pd, PermissionKey::ACCESS_TYPE_INCLUDE); } } } }
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('notification')); $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/registration/notification', 'updated'); } } else { $this->error->add(Loader::helper("validation/token")->getErrorMessage()); } $this->view(); }
public function getPermissionAccessObject() { $cnvID = 0; if (is_object($this->permissionObjectToCheck)) { $cnvID = $this->permissionObjectToCheck->getConversationID(); } $db = Database::connection(); $r = $db->GetOne('select paID from ConversationPermissionAssignments where cnvID = ? and pkID = ?', array($cnvID, $this->pk->getPermissionKeyID())); return Access::getByID($r, $this->pk); }
public function getPermissionAccessObject() { $db = Database::connection(); if ($this->permissionObjectToCheck instanceof TopicTreeNode) { $pa = parent::getPermissionAccessObject(); } elseif ($this->permissionObjectToCheck instanceof CategoryTreeNode && isset($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()])) { $inheritedPKID = $db->GetOne('select pkID from PermissionKeys where pkHandle = ?', array($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()])); $r = $db->GetOne('select paID from TreeNodePermissionAssignments where treeNodeID = ? and pkID = ?', array($this->permissionObjectToCheck->getTreeNodePermissionsNodeID(), $inheritedPKID)); $pa = Access::getByID($r, $this->pk); } else { return false; } return $pa; }
/** * @return Access */ public function getPermissionAccessObject() { $cache = \Core::make('cache/request'); $identifier = sprintf('permission/key/assignment/%s', $this->pk->getPermissionKeyID()); $item = $cache->getItem($identifier); if (!$item->isMiss()) { return $item->get(); } $item->lock(); $db = Loader::db(); $paID = $db->GetOne('select paID from PermissionAssignments where pkID = ?', array($this->pk->getPermissionKeyID())); $pa = Access::getByID($paID, $this->pk); $cache->save($item->set($pa)); return $pa; }
public function updateDetails($post) { $permissions = PermissionKey::getList('basic_workflow'); foreach ($permissions as $pk) { $pk->setPermissionObject($this); $pt = $pk->getPermissionAssignmentObject(); $paID = $post['pkID'][$pk->getPermissionKeyID()]; $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = PermissionAccess::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } }
public function getPermissionAccessObject() { $db = Database::connection(); if ($this->permissionObjectToCheck instanceof File) { $r = $db->GetOne('select paID from FilePermissionAssignments where fID = ? and pkID = ?', array($this->permissionObject->getFileID(), $this->pk->getPermissionKeyID())); if ($r) { return Access::getByID($r, $this->pk, false); } } else { if (isset($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()])) { $pk = Key::getByHandle($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()]); $pk->setPermissionObject($this->permissionObjectToCheck); $pae = $pk->getPermissionAccessObject(); return $pae; } } }
public function getPermissionAccessObject() { $db = Database::connection(); if ($this->permissionObjectToCheck instanceof Area) { $r = $db->GetOne('select paID from AreaPermissionAssignments where cID = ? and arHandle = ? and pkID = ? ', array($this->permissionObjectToCheck->getCollectionID(), $this->permissionObjectToCheck->getAreaHandle(), $this->pk->getPermissionKeyID())); if ($r) { return Access::getByID($r, $this->pk, false); } } elseif (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; } elseif (isset($this->blockTypeInheritedPermissions[$this->pk->getPermissionKeyHandle()])) { $pk = PermissionKey::getByHandle($this->blockTypeInheritedPermissions[$this->pk->getPermissionKeyHandle()]); $pae = $pk->getPermissionAccessObject(); return $pae; } return false; }
public function copyFromFileSetToFile() { $opa = $this->getPermissionAccessObject(); $paID = false; if (is_object($opa)) { $paID = $opa->getPermissionAccessID(); } if ($paID == -1) { // this is proceeding from a merged file set assignment (copying from multiple file sets) $npa = Access::create($this); $ids = $opa->getPermissionAccessIDList(); foreach ($ids as $paID) { $pax = Access::getByID($paID, $this); $pax->duplicate($npa); } $paID = $npa->getPermissionAccessID(); } if ($paID) { $db = Loader::db(); $db->Replace('FilePermissionAssignments', array('fID' => $this->permissionObject->getFileID(), 'pkID' => $this->getPermissionKeyID(), 'paID' => $paID), array('fID', 'paID', 'pkID'), true); } }
public function save() { $this->view($this->post('ptID')); if (Loader::helper('validation/token')->validate('save_permissions')) { $permissions = PermissionKey::getList('page_type'); foreach ($permissions as $pk) { $pk->setPermissionObject($this->pagetype); $paID = $_POST['pkID'][$pk->getPermissionKeyID()]; $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = Access::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } if (Config::get('concrete.permissions.model') == 'advanced') { $permissions = PermissionKey::getList('page'); $defaultPage = $this->pagetype->getPageTypePageTemplateDefaultPageObject(); foreach ($permissions as $pk) { $pk->setPermissionObject($defaultPage); $paID = $_POST['pkID'][$pk->getPermissionKeyID()]; $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = Access::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } } $this->redirect('/dashboard/pages/types/permissions', $this->pagetype->getPageTypeID(), 'updated'); } else { $this->error->add(Loader::helper("validation/token")->getErrorMessage()); } }
public function getPermissionAccessObject() { /** * @var $registry RegistryInterface */ $registry = \Core::make('Concrete\\Core\\Permission\\Inheritance\\Registry\\BlockRegistry'); $db = Database::connection(); if ($this->permissionObjectToCheck instanceof Block) { $co = $this->permissionObjectToCheck->getBlockCollectionObject(); $paID = $db->GetOne('select paID from BlockPermissionAssignments where cID = ? and cvID = ? and bID = ? and pkID = ? ', array($co->getCollectionID(), $co->getVersionID(), $this->permissionObject->getBlockID(), $this->pk->getPermissionKeyID())); if ($paID) { $pae = Access::getByID($paID, $this->pk, false); } } elseif ($this->permissionObjectToCheck instanceof Area && $registry->getEntry('area', $this->pk->getPermissionKeyHandle())) { $pk = PermissionKey::getByHandle($registry->getEntry('area', $this->pk->getPermissionKeyHandle())->getInheritedFromPermissionKeyHandle()); $pk->setPermissionObject($this->permissionObjectToCheck); $pae = $pk->getPermissionAccessObject(); } elseif ($this->permissionObjectToCheck instanceof Page && $registry->getEntry('page', $this->pk->getPermissionKeyHandle())) { $pk = PermissionKey::getByHandle($registry->getEntry('page', $this->pk->getPermissionKeyHandle())->getInheritedFromPermissionKeyHandle()); $pk->setPermissionObject($this->permissionObjectToCheck); $pae = $pk->getPermissionAccessObject(); } return $pae; }
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(\URL::to($c)); return $wpr; }
public function getPermissionAccessObject() { $db = Loader::db(); $r = $db->GetOne('select paID from PageTypePermissionAssignments where ptID = ? and pkID = ?', array($this->permissionObject->getPageTypeID(), $this->pk->getPermissionKeyID())); return Access::getByID($r, $this->pk); }
public function getPermissionAccessObject() { $db = Loader::db(); $r = $db->GetOne('select paID from BasicWorkflowPermissionAssignments where wfID = ? and pkID = ?', array($this->getPermissionObject()->getWorkflowID(), $this->pk->getPermissionKeyID())); return Access::getByID($r, $this->pk); }