Ejemplo n.º 1
0
 function filterCyclicalGroups($iTargetGroupID, $aGroupMemberships)
 {
     $aReturnGroupIDs = array();
     // PHP5: clone/copy
     $aLocalGroupMemberships = $aGroupMemberships;
     // In case we get given ourself, we know we can't add ourselves
     // to each other.
     unset($aLocalGroupMemberships[$iTargetGroupID]);
     // Groups that have no group members can safely be added to the
     // group.  Simplifies debugging of later code.
     foreach ($aLocalGroupMemberships as $k => $v) {
         if (is_null($v) || !count($v)) {
             unset($aLocalGroupMemberships[$k]);
             $aReturnGroupIDs[] = $k;
         }
     }
     $aBadGroupIDs = GroupUtil::listBadGroups($iTargetGroupID, $aLocalGroupMemberships);
     foreach ($aLocalGroupMemberships as $k => $v) {
         if (!in_array($k, $aBadGroupIDs)) {
             $aReturnGroupIDs[] = $k;
         }
     }
     return $aReturnGroupIDs;
 }