From a45045d9bda1d6c68dcdfa541b3112193b7b244b Mon Sep 17 00:00:00 2001 From: EwelinaLasowy Date: Mon, 28 Feb 2022 11:31:31 +0100 Subject: [PATCH] wip --- .../Providers/AuthServiceProvider.php | 6 +++++- app/Domain/Policies/HolidayPolicy.php | 16 ++++++++++++++++ .../Http/Controllers/HolidayController.php | 8 +++++++- resources/js/Pages/Holidays/Index.vue | 6 +++++- 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 app/Domain/Policies/HolidayPolicy.php diff --git a/app/Architecture/Providers/AuthServiceProvider.php b/app/Architecture/Providers/AuthServiceProvider.php index 88f3b1c..a17b6b7 100644 --- a/app/Architecture/Providers/AuthServiceProvider.php +++ b/app/Architecture/Providers/AuthServiceProvider.php @@ -5,10 +5,14 @@ declare(strict_types=1); namespace Toby\Architecture\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; +use Toby\Domain\Policies\HolidayPolicy; +use Toby\Eloquent\Models\Holiday; class AuthServiceProvider extends ServiceProvider { - protected $policies = []; + protected $policies = [ + Holiday::class => HolidayPolicy::class + ]; public function boot(): void { diff --git a/app/Domain/Policies/HolidayPolicy.php b/app/Domain/Policies/HolidayPolicy.php new file mode 100644 index 0000000..907c9ee --- /dev/null +++ b/app/Domain/Policies/HolidayPolicy.php @@ -0,0 +1,16 @@ +role == Role::AdministrativeApprover || $user->role == Role::Administrator; + } +} diff --git a/app/Infrastructure/Http/Controllers/HolidayController.php b/app/Infrastructure/Http/Controllers/HolidayController.php index fe256dd..cf9558d 100644 --- a/app/Infrastructure/Http/Controllers/HolidayController.php +++ b/app/Infrastructure/Http/Controllers/HolidayController.php @@ -5,7 +5,9 @@ declare(strict_types=1); namespace Toby\Infrastructure\Http\Controllers; use Illuminate\Http\RedirectResponse; +use Illuminate\Http\Request; use Inertia\Response; +use Toby\Domain\Policies\HolidayPolicy; use Toby\Eloquent\Models\Holiday; use Toby\Infrastructure\Http\Requests\HolidayRequest; use Toby\Infrastructure\Http\Resources\HolidayFormDataResource; @@ -13,14 +15,18 @@ use Toby\Infrastructure\Http\Resources\HolidayResource; class HolidayController extends Controller { - public function index(): Response + public function index(Request $request): Response { $holidays = Holiday::query() ->orderBy("date") ->get(); + $user = $request->user(); return inertia("Holidays/Index", [ "holidays" => HolidayResource::collection($holidays), + "can" => [ + "create" => $user->can("create", Holiday::class) + ], ]); } diff --git a/resources/js/Pages/Holidays/Index.vue b/resources/js/Pages/Holidays/Index.vue index bd71b55..3a49db0 100644 --- a/resources/js/Pages/Holidays/Index.vue +++ b/resources/js/Pages/Holidays/Index.vue @@ -10,7 +10,7 @@ Lista dni wolnych od pracy w danym roku

-
+
null, }, + can: { + type: Object, + default: () => null, + }, }, setup() { return {}