Exemplo n.º 1
0
 function getBackendGroups($rows, $allgroups)
 {
     $adminmappings = array();
     if ($rows) {
         foreach ($rows as $row) {
             if ($row->location == 'admin') {
                 $adminmappings[] = $row->jgroup;
             }
         }
     }
     // filter backend roles
     $keys = JFUHelper::getAdminLoginGroups();
     $backendgroups = array();
     foreach ($allgroups as $group) {
         if (in_array($group->value, $keys)) {
             if (!in_array($group->value, $adminmappings)) {
                 $backendgroups[] = $group;
             }
         } else {
             $group_temp = $group;
             // we check if one of the parents have the needed rights!
             while ($group->parent_id != 0) {
                 $parent = $group->parent_id;
                 foreach ($allgroups as $group_parent) {
                     if ($parent == $group_parent->value) {
                         if (in_array($group_parent->value, $keys)) {
                             if (!in_array($group_temp->value, $adminmappings)) {
                                 $backendgroups[] = $group_temp;
                             }
                             break 2;
                         }
                         $group = $group_parent;
                     }
                 }
             }
         }
     }
     return $backendgroups;
 }