Exemplo n.º 1
0
 private function fetchCids()
 {
     if ($this->cids === null) {
         $groupsrights = array();
         foreach (self::$instances as $instance) {
             foreach ($instance->gids as $gid) {
                 $groupsrights[] = array('group' => $gid, 'rights' => $instance->rights);
             }
         }
         $castes = Caste::batchFrom($groupsrights);
         foreach (self::$instances as $instance) {
             $gids = $instance->gids;
             $rights = $instance->rights;
             $filtered = $castes->filter(function ($c) use($gids, $rights) {
                 return in_array($c->group()->id(), $gids) && $c->rights()->isMe($rights);
             });
             $instance->cids = $filtered->ids();
         }
     }
     return $this->cids;
 }