<?php defined('C5_EXECUTE') or die("Access Denied."); $set = \Concrete\Core\Permission\Set::getSavedPermissionSetFromSession(); ?> <button class="btn btn-xs btn-default" type="button" id="ccm-permissions-list-copy-permissions"><?php echo t('Copy'); ?> </button> <?php if (is_object($set) && $set->getPermissionKeyCategory() == $pkCategory->getPermissionKeyCategoryHandle()) { ?> <button class="btn btn-xs btn-default" type="button" id="ccm-permissions-list-paste-permissions"><?php echo t('Paste'); ?> </button> <?php } ?> <input type="hidden" name="pkCategoryHandle" value="<?php echo $pkCategory->getPermissionKeyCategoryHandle(); ?> " /> <script type="text/javascript"> $(function() { $('#ccm-permissions-list-copy-permissions').click(function() { var frm = $('#ccm-permission-list-form'); jQuery.fn.dialog.showLoader(); var data = ''; frm.find('.ccm-permission-access-line input[type=hidden]').each(function() {
defined('C5_EXECUTE') or die("Access Denied."); use Concrete\Core\Permission\Set as PermissionSet; if ($_REQUEST['task'] == 'copy_permission_set' && Loader::helper("validation/token")->validate('copy_permission_set')) { $ps = new PermissionSet(); $ps->setPermissionKeyCategory($_POST['pkCategoryHandle']); foreach ($_POST['pkID'] as $pkID => $paID) { $ps->addPermissionAssignment($pkID, $paID); } $ps->saveToSession(); $r = new stdClass(); $r->success = 1; print Loader::helper('json')->encode($r); } if ($_REQUEST['task'] == 'paste_permission_set' && Loader::helper("validation/token")->validate('paste_permission_set')) { $ps = PermissionSet::getSavedPermissionSetFromSession(); $r = array(); if (is_object($ps) && $ps->getPermissionKeyCategory() == $_POST['pkCategoryHandle']) { $permissions = $ps->getPermissionAssignments(); foreach ($permissions as $pkID => $paID) { $obj = new stdClass(); $obj->pkID = $pkID; $obj->paID = $paID; $pk = PermissionKey::getByID($pkID); $pa = PermissionAccess::getByID($paID, $pk); ob_start(); Loader::element('permission/labels', array('pk' => $pk, 'pa' => $pa)); $html = ob_get_contents(); ob_end_clean(); $obj->html = $html; $r[] = $obj;
if (count($matches) > 0) { $newpa = $pa->duplicate(); // remove the associated things. $listItems = $newpa->getAccessListItems(PermissionKey::ACCESS_TYPE_ALL); foreach ($listItems as $li) { foreach ($matches as $as) { $entity = $as->getAccessEntityObject(); $pd = $as->getPermissionDurationObject(); if ($entity->getAccessEntityID() == $peID && (is_object($pd) && $pd->getPermissionDurationID() == $pdID || !is_object($pd) && $pdID == 0)) { $newpa->removeListItem($entity); } } } $pkr = new ChangePagePermissionsPageWorkflowRequest(); $pkr->setRequestedPage($c); $ps = new PermissionSet(); $ps->setPermissionKeyCategory('page'); $ps->addPermissionAssignment($pk->getPermissionKeyID(), $newpa->getPermissionAccessID()); $pkr->setPagePermissionSet($ps); $pkr->setRequesterUserID($u->getUserID()); $u->unloadCollectionEdit($c); $response = $pkr->trigger(); if (!$response instanceof \Concrete\Core\Workflow\Progress\Response) { $deferred = true; } } } } exit; } }