Example #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);
         }
     }
 }