user_groups = $user_groups; } function isSatisfiedBy($request) { $user = $request->getUser(); $positive_groups = array(); $negative_groups = array(); foreach($this->user_groups as $group) { if($group{0} == '!') $negative_groups[] = substr($group, 1); else $positive_groups[] = $group; } $res = true; if($positive_groups) $res = (array_intersect($positive_groups, $user->getGroups()) == $positive_groups); if($res && $negative_groups) $res &= !(array_intersect($negative_groups, $user->getGroups()) == $negative_groups); return $res; } } ?>