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 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()); } }
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 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; }
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 copyFromFileSetToFile() { $db = Loader::db(); $paID = $this->getPermissionAccessID(); if (is_array($paID)) { // we have to merge the permissions access object into a new one. $pa = PermissionAccess::create($this); foreach ($paID as $paID) { $pax = PermissionAccess::getByID($paID, $this); $pax->duplicate($pa); } $paID = $pa->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 getPermissionAccessObject() { $pa = PermissionCache::getAccessObject($this->pk, $this->getPermissionObject()); if ($pa === -1) { return false; } if (!is_object($pa)) { $db = Loader::db(); $r = $db->GetOne('select paID from PagePermissionAssignments where cID = ? and pkID = ?', array($this->getPermissionObject()->getPermissionsCollectionID(), $this->pk->getPermissionKeyID())); if ($r) { $pa = PermissionAccess::getByID($r, $this->pk, false); } if (is_object($pa)) { PermissionCache::addAccessObject($this->pk, $this->getPermissionObject(), $pa); } else { PermissionCache::addAccessObject($this->pk, $this->getPermissionObject(), -1); } } return $pa; }
public function getPermissionAccessObject() { $db = Loader::db(); if ($this->permissionObjectToCheck instanceof File) { $r = $db->GetCol('select paID from FilePermissionAssignments where fID = ? and pkID = ?', array($this->permissionObject->getFileID(), $this->pk->getPermissionKeyID())); } else { if (is_array($this->permissionObjectToCheck)) { // sets $sets = array(); foreach ($this->permissionObjectToCheck as $fs) { $sets[] = $fs->getFileSetID(); } $inheritedPKID = $db->GetOne('select pkID from PermissionKeys where pkHandle = ?', array($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()])); $r = $db->GetCol('select distinct paID from FileSetPermissionAssignments where fsID in (' . implode(',', $sets) . ') and pkID = ? ' . $filterString, array($inheritedPKID)); } else { if ($this->permissionObjectToCheck instanceof FileSet && isset($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()])) { $inheritedPKID = $db->GetOne('select pkID from PermissionKeys where pkHandle = ?', array($this->inheritedPermissions[$this->pk->getPermissionKeyHandle()])); $r = $db->GetCol('select distinct paID from FileSetPermissionAssignments where fsID = ? and pkID = ?', array($this->permissionObjectToCheck->getFileSetID(), $inheritedPKID)); } else { return false; } } } if (count($r) == 1) { $permID = $r[0]; } if (count($r) > 1) { $permID = $r; } if (is_array($permID)) { foreach ($permID as $paID) { $pa = PermissionAccess::getByID($paID, $this->pk); if (is_object($pa)) { $perms[] = $pa; } } return PermissionAccess::createByMerge($perms); } else { return PermissionAccess::getByID($permID, $this->pk); } }
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; }
public static function create(PermissionKey $pk) { $db = Loader::db(); $db->Execute('insert into PermissionAccess (paIsInUse) values (0)'); return PermissionAccess::getByID($db->Insert_ID(), $pk); }
protected function loadPermissionAssignments() { $db = Loader::db(); $r = $db->Execute('select pkID, paID from PagePermissionAssignments where cID = ?', array($this->getPermissionsCollectionID())); while ($row = $r->FetchRow()) { $pk = PermissionKey::getByID($row['pkID']); $pk->setPermissionObject($this); $this->permissionAssignments[$row['pkID']] = PermissionAccess::getByID($row['paID'], $pk); } }
Loader::element('permission/labels', array('pk' => $pk, 'pa' => $pa)); } if ($_REQUEST['task'] == 'save_permission_assignments' && Loader::helper("validation/token")->validate('save_permission_assignments')) { $permissions = PermissionKey::getList('file'); foreach ($permissions as $pk) { $paID = $_POST['pkID'][$pk->getPermissionKeyID()]; $pk->setPermissionObject($f); $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = PermissionAccess::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } } if ($_REQUEST['task'] == 'save_workflows' && Loader::helper("validation/token")->validate('save_workflows')) { $pk = PermissionKey::getByID($_REQUEST['pkID']); $pk->setPermissionObject($f); $pa = PermissionAccess::getByID($_REQUEST['paID'], $pk); $pk->clearWorkflows(); foreach ($_POST['wfID'] as $wfID) { $wf = Workflow::getByID($wfID); if (is_object($wf)) { $pk->attachWorkflow($wf); } } } } }
public function getPermissionAccessObject() { $db = Loader::db(); $r = $db->GetOne('select paID from FileSetPermissionAssignments where fsID = ? and pkID = ?', array($this->permissionObjectToCheck->getFileSetID(), $this->pk->getPermissionKeyID())); return PermissionAccess::getByID($r, $this->pk); }
$pe = PermissionAccessEntity::getByID($_REQUEST['peID']); $pa->removeListItem($pe); } if ($_REQUEST['task'] == 'save_permission' && Loader::helper("validation/token")->validate('save_permission')) { $pk = AreaPermissionKey::getByID($_REQUEST['pkID']); $pk->setPermissionObject($ax); $pa = PermissionAccess::getByID($_REQUEST['paID'], $pk); $pa->save($_POST); } if ($_REQUEST['task'] == 'display_access_cell' && Loader::helper("validation/token")->validate('display_access_cell')) { $pk = PermissionKey::getByID($_REQUEST['pkID']); $pa = PermissionAccess::getByID($_REQUEST['paID'], $pk); Loader::element('permission/labels', array('pk' => $pk, 'pa' => $pa)); } if ($_REQUEST['task'] == 'save_permission_assignments' && Loader::helper("validation/token")->validate('save_permission_assignments')) { $permissions = PermissionKey::getList('area'); foreach ($permissions as $pk) { $paID = $_POST['pkID'][$pk->getPermissionKeyID()]; $pk->setPermissionObject($ax); $pt = $pk->getPermissionAssignmentObject(); $pt->clearPermissionAssignment(); if ($paID > 0) { $pa = PermissionAccess::getByID($paID, $pk); if (is_object($pa)) { $pt->assignPermissionAccess($pa); } } } } } }
public function file_sets_edit(){ extract($this->getHelperObjects()); Loader::model('file_set'); //do my editing if (!$validation_token->validate("file_sets_edit")) { $this->set('error', array($validation_token->getErrorMessage())); $this->view(); return; } if(!$this->post('fsID')){ $this->set('error', array(t('Invalid ID'))); $this->view(); } $file_set = new FileSet(); $file_set->Load('fsID = ?', $this->post('fsID')); $file_set->fsName = $this->post('file_set_name'); $copyPermissionsFromBase = false; if ($file_set->fsOverrideGlobalPermissions == 0 && $this->post('fsOverrideGlobalPermissions') == 1) { // we are checking the checkbox for the first time $copyPermissionsFromBase = true; } if ($file_set->fsOverrideGlobalPermissions) { $permissions = PermissionKey::getList('file_set'); foreach($permissions as $pk) { $pk->setPermissionObject($file_set); $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); } } } } $file_set->fsOverrideGlobalPermissions = ($this->post('fsOverrideGlobalPermissions') == 1) ? 1 : 0; $file_set->save(); parse_str($this->post('fsDisplayOrder')); $file_set->updateFileSetDisplayOrder($fID); if ($file_set->fsOverrideGlobalPermissions == 0) { $file_set->resetPermissions(); } if ($copyPermissionsFromBase) { $file_set->acquireBaseFileSetPermissions(); } $this->redirect("/dashboard/files/sets", 'view_detail', $this->post('fsID'), 'file_set_updated'); }
if ($_REQUEST['paReplaceAll'] == 'add') { $pk->setPermissionObject($c); $pa = $pk->getPermissionAccessObject(); if (is_object($pa)) { // that means that we have to take the current $pa object, and the new $pa object, and merge them together into // a third object, and try and assign that object $orig = $pa->duplicate(); $newpa = PermissionAccess::getByID($newPAID, $pk); $pa = $newpa->duplicate($orig); } else { // no current $pa object, which means we assign the new $pa object to this thing $pk->setPermissionObject($c); $pa = PermissionAccess::getByID($newPAID, $pk); } } else { $pa = PermissionAccess::getByID($newPAID, $pk); } $pkr = new ChangePagePermissionsPageWorkflowRequest(); $pkr->setRequestedPage($c); $ps = new PermissionSet(); $ps->setPermissionKeyCategory('page'); $ps->addPermissionAssignment($pk->getPermissionKeyID(), $pa->getPermissionAccessID()); $pkr->setPagePermissionSet($ps); $pkr->setRequesterUserID($u->getUserID()); $u->unloadCollectionEdit($c); $response = $pkr->trigger(); if (!$response instanceof \Concrete\Core\Workflow\Progress\Response) { $deferred = true; } } }
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 PermissionAccess::getByID($r, $this->pk); }
public function getPermissionAccessObject() { $db = Loader::db(); $paID = $db->GetOne('select paID from PermissionAssignments where pkID = ?', array($this->pk->getPermissionKeyID())); return PermissionAccess::getByID($paID, $this->pk); }