8 use BristolSU\ControlDB\Contracts\Repositories\Role as RoleRepository;
39 if ($resource instanceof User) {
40 return collect([$this->
fromUser($resource)]);
42 if ($resource instanceof Group) {
43 return $resource->members()->merge(
44 $resource->roles()->map(
function(Role $role) {
45 return $role->users();
46 })->values()->flatten(1)
47 )->unique(
function($user) {
49 })->map(
function($user) {
53 if ($resource instanceof Role) {
54 return $resource->users()->map(
function($user) {
74 return $audienceMember;
75 })->filter(
function(
AudienceMember $audienceMember) use ($resource) {
77 return ($audienceMember->
hasAudience() && $resource instanceof User)
78 || ($audienceMember->
hasAudience() && $resource instanceof Group && (
79 in_array($resource->id(), $audienceMember->
groups()->pluck(
'id')->toArray())
80 || in_array($resource->id(), $audienceMember->
roles()->pluck(
'group.id')->toArray())
82 || ($audienceMember->
hasAudience() && $resource instanceof Role &&
83 in_array($resource->id(), $audienceMember->
roles()->pluck(
'id')->toArray()));
filterForLogic(Logic $logic)
withAccessToResource($resource)
withAccessToLogicGroupWithResource($resource, Logic $logic)