예제 #1
0
 static function checkForSectionalAdmins($id)
 {
     global $db;
     $section = $db->selectObject('section', 'id=' . $id);
     $branch = navigationmodule::levelTemplate($id, 0);
     array_unshift($branch, $section);
     $allusers = array();
     $allgroups = array();
     while ($section->parent > 0) {
         $ploc = expCore::makeLocation('navigationmodule', null, $section);
         $allusers = array_merge($allusers, $db->selectColumn('userpermission', 'uid', "permission='manage' AND module='navigationmodule' AND internal=" . $section->parent));
         $allgroups = array_merge($allgroups, $db->selectColumn('grouppermission', 'gid', "permission='manage' AND module='navigationmodule' AND internal=" . $section->parent));
         $section = $db->selectObject('section', 'id=' . $section->parent);
     }
     foreach ($branch as $section) {
         $sloc = expCore::makeLocation('navigationmodule', null, $section->id);
         // remove any manage permissions for this page and it's children
         // $db->delete('userpermission', "module='navigationmodule' AND internal=".$section->id);
         // $db->delete('grouppermission', "module='navigationmodule' AND internal=".$section->id);
         foreach ($allusers as $uid) {
             $u = user::getUserById($uid);
             expPermissions::grant($u, 'manage', $sloc);
         }
         foreach ($allgroups as $gid) {
             $g = group::getGroupById($gid);
             expPermissions::grantGroup($g, 'manage', $sloc);
         }
     }
 }
예제 #2
0
    //$groups = explode(';',$_POST['permdata']);
    $locarray = array();
    //	if ($loc->mod == 'navigationmodule' && (isset($_POST['permdata'][1]['manage']) && $_POST['permdata'][1]['manage'] || isset($_POST['permdata'][1]['administrate']) && $_POST['permdata'][1]['administrate'])) {
    //		$sections = navigationmodule::levelTemplate($loc->int);
    //		$locarray[] = $loc;
    //		foreach ($sections as $section) {
    //			$locarray[] = expCore::makeLocation('navigationmodule', null, $section->id);
    //		}
    //	} else {
    $locarray[] = $loc;
    //	}
    $groups = group::getAllGroups();
    foreach ($locarray as $location) {
        foreach ($groups as $g) {
            expPermissions::revokeAllGroup($g, $location);
        }
    }
    foreach ($_POST['permdata'] as $k => $group_str) {
        $perms = array_keys($group_str);
        $g = group::getGroupById($k);
        foreach ($locarray as $location) {
            for ($i = 0; $i < count($perms); $i++) {
                expPermissions::grantGroup($g, $perms[$i], $location);
            }
        }
    }
    expPermissions::triggerRefresh();
    expHistory::back();
} else {
    echo SITE_403_HTML;
}