From d1bef0ac92b4e0ff5c00cec5f54025cd4cbf77b1 Mon Sep 17 00:00:00 2001 From: Adrian Hopek Date: Wed, 16 Mar 2022 14:16:55 +0100 Subject: [PATCH 1/3] #73 - cancel vacation request --- app/Domain/Policies/VacationRequestPolicy.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/Domain/Policies/VacationRequestPolicy.php b/app/Domain/Policies/VacationRequestPolicy.php index 61000ee..172fd4c 100644 --- a/app/Domain/Policies/VacationRequestPolicy.php +++ b/app/Domain/Policies/VacationRequestPolicy.php @@ -5,6 +5,9 @@ declare(strict_types=1); namespace Toby\Domain\Policies; use Toby\Domain\Enums\Role; +use Toby\Domain\States\VacationRequest\Created; +use Toby\Domain\States\VacationRequest\WaitingForAdministrative; +use Toby\Domain\States\VacationRequest\WaitingForTechnical; use Toby\Eloquent\Models\User; use Toby\Eloquent\Models\VacationRequest; @@ -40,8 +43,16 @@ class VacationRequestPolicy return in_array($user->role, [Role::AdministrativeApprover, Role::TechnicalApprover], true); } - public function cancel(User $user): bool + public function cancel(User $user, VacationRequest $vacationRequest): bool { + if ($vacationRequest->user->is($user) && $vacationRequest->state->equals( + Created::class, + WaitingForAdministrative::class, + WaitingForTechnical::class, + )) { + return true; + } + return $user->role === Role::AdministrativeApprover; } -- 2.52.0 From 0e482f84fc1901dc8bdbe7e0fff9afa9bb14095d Mon Sep 17 00:00:00 2001 From: Adrian Hopek Date: Wed, 16 Mar 2022 14:32:33 +0100 Subject: [PATCH 2/3] #73 - fix --- database/seeders/DemoSeeder.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/database/seeders/DemoSeeder.php b/database/seeders/DemoSeeder.php index 6731a3a..7c1bb3c 100644 --- a/database/seeders/DemoSeeder.php +++ b/database/seeders/DemoSeeder.php @@ -33,19 +33,19 @@ class DemoSeeder extends Seeder YearPeriod::unsetEventDispatcher(); VacationRequest::unsetEventDispatcher(); - $employee1 = User::factory([ + $user = User::factory([ "first_name" => "Jan", "last_name" => "Kowalski", "email" => env("LOCAL_EMAIL_FOR_LOGIN_VIA_GOOGLE"), "employment_form" => EmploymentForm::EmploymentContract, "position" => "programista", - "role" => Role::Employee, + "role" => Role::Administrator, "employment_date" => Carbon::createFromDate(2021, 12, 31), "remember_token" => Str::random(10), ]) ->create(); - $employee2 = User::factory([ + User::factory([ "first_name" => "Anna", "last_name" => "Nowak", "email" => "anna.nowak@example.com", @@ -57,7 +57,7 @@ class DemoSeeder extends Seeder ]) ->create(); - $employee3 = User::factory([ + User::factory([ "first_name" => "Tola", "last_name" => "Sawicka", "email" => "tola.sawicka@example.com", @@ -93,7 +93,7 @@ class DemoSeeder extends Seeder ]) ->create(); - $admin = User::factory([ + User::factory([ "first_name" => "Miłosz", "last_name" => "Borowski", "email" => "milosz.borowski@example.com", @@ -151,8 +151,8 @@ class DemoSeeder extends Seeder "to" => Carbon::create($currentYearPeriod->year, 2, 4)->toDateString(), "comment" => "Komentarz do wniosku urlopowego.", ]) - ->for($employee1) - ->for($employee1, "creator") + ->for($user) + ->for($user, "creator") ->for($currentYearPeriod) ->afterCreating(function (VacationRequest $vacationRequest): void { $days = app(VacationDaysCalculator::class)->calculateDays( @@ -175,7 +175,7 @@ class DemoSeeder extends Seeder "from" => null, "to" => Created::class, ])->for($vacationRequestApproved) - ->for($employee1) + ->for($user) ->create(); VacationRequestActivity::factory([ @@ -221,8 +221,8 @@ class DemoSeeder extends Seeder "to" => Carbon::create($currentYearPeriod->year, 2, 14)->toDateString(), "comment" => "Komentarz do wniosku urlopowego.", ]) - ->for($employee1) - ->for($employee1, "creator") + ->for($user) + ->for($user, "creator") ->for($currentYearPeriod) ->afterCreating(function (VacationRequest $vacationRequest): void { $days = app(VacationDaysCalculator::class)->calculateDays( @@ -245,7 +245,7 @@ class DemoSeeder extends Seeder "from" => null, "to" => Created::class, ])->for($vacationRequestWaitsForAdminApproval) - ->for($employee1) + ->for($user) ->create(); VacationRequestActivity::factory([ @@ -278,8 +278,8 @@ class DemoSeeder extends Seeder "to" => Carbon::create($currentYearPeriod->year, 2, 7)->toDateString(), "comment" => "", ]) - ->for($employee1) - ->for($employee1, "creator") + ->for($user) + ->for($user, "creator") ->for($currentYearPeriod) ->afterCreating(function (VacationRequest $vacationRequest): void { $days = app(VacationDaysCalculator::class)->calculateDays( @@ -302,7 +302,7 @@ class DemoSeeder extends Seeder "from" => null, "to" => Created::class, ])->for($vacationRequestRejected) - ->for($employee1) + ->for($user) ->create(); VacationRequestActivity::factory([ -- 2.52.0 From 1f4b41fbe0f2985c0d4b2bd32c6b42c4c21b767b Mon Sep 17 00:00:00 2001 From: EwelinaLasowy Date: Thu, 17 Mar 2022 08:10:32 +0100 Subject: [PATCH 3/3] #73 - changed text for cancelling vacation request --- resources/js/Pages/VacationRequest/Show.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/js/Pages/VacationRequest/Show.vue b/resources/js/Pages/VacationRequest/Show.vue index 345e937..096c023 100644 --- a/resources/js/Pages/VacationRequest/Show.vue +++ b/resources/js/Pages/VacationRequest/Show.vue @@ -203,7 +203,7 @@

- Wniosek można anulować w każdej chwili - nawet jeśli był już zatwierdzony. + Anulowanego wniosku nie można przywrócić - należy utworzyć nowy.

-- 2.52.0