diff --git a/app/Support/PositionSettingRetrieval.php b/app/Support/PositionSettingRetrieval.php index 364776e..b2b62b5 100644 --- a/app/Support/PositionSettingRetrieval.php +++ b/app/Support/PositionSettingRetrieval.php @@ -4,8 +4,10 @@ use BristolSU\ControlDB\Contracts\Models\Group; use BristolSU\ControlDB\Contracts\Repositories\Position; +use BristolSU\Support\Authentication\Contracts\Authentication; use BristolSU\Support\Logic\Contracts\Audience\LogicAudience; use BristolSU\Support\Logic\Contracts\LogicRepository; +use BristolSU\Support\Logic\Contracts\LogicTester; use Exception; use Illuminate\Support\Facades\Cache; @@ -49,14 +51,18 @@ public function getSettings(Group $group) protected function groupIsForSetting(Group $group, array $setting): bool { + $user = app(Authentication::class)->getUser(); + $role = app(Authentication::class)->getRole(); + if (!array_key_exists('logic_id', $setting)) { return false; } $logic = $this->logicRepository->getById($setting['logic_id']); - $groups = collect($this->logicAudience->groupAudience($logic))->map(function (Group $group) { - return $group->id(); - }); - return $groups->contains($group->id()); + return app(LogicTester::class)->evaluate($logic, $user, $group, $role); +// $groups = collect($this->logicAudience->groupAudience($logic))->map(function (Group $group) { +// return $group->id(); +// }); +// return $groups->contains($group->id()); } protected function getCacheKey(Group $group) diff --git a/app/Support/RequiredSettingRetrieval.php b/app/Support/RequiredSettingRetrieval.php index 2cbf412..e674cfc 100644 --- a/app/Support/RequiredSettingRetrieval.php +++ b/app/Support/RequiredSettingRetrieval.php @@ -4,8 +4,10 @@ use BristolSU\ControlDB\Contracts\Models\Group; use BristolSU\ControlDB\Contracts\Repositories\Position; +use BristolSU\Support\Authentication\Contracts\Authentication; use BristolSU\Support\Logic\Contracts\Audience\LogicAudience; use BristolSU\Support\Logic\Contracts\LogicRepository; +use BristolSU\Support\Logic\Contracts\LogicTester; use Exception; use Illuminate\Support\Facades\Cache; @@ -53,10 +55,15 @@ protected function getCacheKey(Group $group) protected function groupIsForSetting(Group $group, array $setting): bool { + $user = app(Authentication::class)->getUser(); + $role = app(Authentication::class)->getRole(); + if (!array_key_exists('logic_id', $setting)) { return false; } $logic = $this->logicRepository->getById($setting['logic_id']); + return app(LogicTester::class)->evaluate($logic, $user, $group, $role); + $groups = collect($this->logicAudience->groupAudience($logic))->map(function (Group $group) { return $group->id(); });