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 {}