} else {
    $smarty->assign('referer', '');
}
$_REQUEST['objectId'] = urldecode($_REQUEST['objectId']);
$_REQUEST['objectType'] = urldecode($_REQUEST['objectType']);
$_REQUEST['permType'] = !empty($_REQUEST['permType']) ? urldecode($_REQUEST['permType']) : 'global';
$smarty->assign('objectName', $_REQUEST['objectName']);
$smarty->assign('objectId', $_REQUEST['objectId']);
$smarty->assign('objectType', $_REQUEST['objectType']);
$smarty->assign_by_ref('permType', $_REQUEST['permType']);
if ($_REQUEST['objectType'] == 'wiki') {
    $_REQUEST['objectType'] = 'wiki page';
}
$objectFactory = Perms_Reflection_Factory::getDefaultFactory();
$currentObject = $objectFactory->get($_REQUEST['objectType'], $_REQUEST['objectId']);
$permissionApplier = new Perms_Applier();
$permissionApplier->addObject($currentObject);
if ($restrictions = perms_get_restrictions()) {
    $permissionApplier->restrictPermissions($restrictions);
}
if ($_REQUEST['objectType'] == 'wiki page') {
    global $structlib;
    include_once 'lib/structures/structlib.php';
    $pageInfoTree = $structlib->s_get_structure_pages($structlib->get_struct_ref_id($_REQUEST['objectId']));
    if (count($pageInfoTree) > 1) {
        $smarty->assign('inStructure', 'y');
    }
    // If assign to structure is requested, add subelements to the applier
    if (!empty($_REQUEST['assignstructure']) && $_REQUEST['assignstructure'] == 'on' && !empty($pageInfoTree)) {
        foreach ($pageInfoTree as $subPage) {
            $sub = $objectFactory->get($_REQUEST['objectType'], $subPage['pageName']);
Beispiel #2
0
 function testRevertIfWithinBounds()
 {
     $current = new Perms_Reflection_PermissionSet();
     $current->add('Anonymous', 'view');
     $parent = new Perms_Reflection_PermissionSet();
     $parent->add('Anonymous', 'view');
     $parent->add('Registered', 'edit');
     $parent->add('Admins', 'admin');
     $newSet = new Perms_Reflection_PermissionSet();
     $newSet->add('Anonymous', 'view');
     $newSet->add('Registered', 'edit');
     $newSet->add('Admins', 'admin');
     $target = $this->getMock('Perms_Reflection_Container');
     $target->expects($this->once())->method('getDirectPermissions')->will($this->returnValue($current));
     $target->expects($this->once())->method('getParentPermissions')->will($this->returnValue($parent));
     $target->expects($this->once())->method('remove')->with($this->equalTo('Anonymous'), $this->equalTo('view'));
     $applier = new Perms_Applier();
     $applier->addObject($target);
     $applier->restrictPermissions(array('view', 'edit', 'admin'));
     $applier->apply($newSet);
 }