From b1055ccc35afc4ada1e0d389f0f7e7f3874ac1bd Mon Sep 17 00:00:00 2001 From: Fenrikur <3359222+Fenrikur@users.noreply.github.com> Date: Mon, 4 Mar 2024 21:09:33 +0100 Subject: [PATCH] fix(application): assistants may only cancel until end of assistant reg --- app/Http/Controllers/Applications/ApplicationController.php | 6 ++++-- app/Http/Controllers/Applications/InviteesController.php | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Applications/ApplicationController.php b/app/Http/Controllers/Applications/ApplicationController.php index 643f42e..2a572cb 100644 --- a/app/Http/Controllers/Applications/ApplicationController.php +++ b/app/Http/Controllers/Applications/ApplicationController.php @@ -270,7 +270,8 @@ public function delete() { $application = Auth::user()->application; abort_if(is_null($application), 404, 'Application not found'); - abort_if($application->status === ApplicationStatus::TableAccepted || $application->status === ApplicationStatus::CheckedIn || $application->status === ApplicationStatus::CheckedOut, 403, 'Applications which have accepted their table may no longer be canceled.'); + abort_if($application->type !== ApplicationType::Assistant && ($application->status === ApplicationStatus::TableAccepted || $application->status === ApplicationStatus::CheckedIn || $application->status === ApplicationStatus::CheckedOut), 403, 'Applications which have accepted their table may no longer be canceled.'); + abort_if($application->type === ApplicationType::Assistant && Carbon::parse(config('con.assistant_end_date'))->isPast(), 403, 'Assistants may no longer cancel once the assistant registration period is over.'); return view('application.delete', [ "application" => $application, @@ -283,7 +284,8 @@ public function destroy() $user = Auth::user(); $application = $user->application; abort_if(is_null($application), 404, 'Application not found'); - abort_if($application->status === ApplicationStatus::TableAccepted || $application->status === ApplicationStatus::CheckedIn || $application->status === ApplicationStatus::CheckedOut, 403, 'Applications which have accepted their table may no longer be canceled.'); + abort_if($application->type !== ApplicationType::Assistant && ($application->status === ApplicationStatus::TableAccepted || $application->status === ApplicationStatus::CheckedIn || $application->status === ApplicationStatus::CheckedOut), 403, 'Applications which have accepted their table may no longer be canceled.'); + abort_if($application->type === ApplicationType::Assistant && Carbon::parse(config('con.assistant_end_date'))->isPast(), 403, 'Assistants may no longer cancel once the assistant registration period is over.'); foreach ($application->children()->get() as $child) { $child->update([ diff --git a/app/Http/Controllers/Applications/InviteesController.php b/app/Http/Controllers/Applications/InviteesController.php index fa28b8d..ab2505d 100644 --- a/app/Http/Controllers/Applications/InviteesController.php +++ b/app/Http/Controllers/Applications/InviteesController.php @@ -46,6 +46,7 @@ public function destroy(InviteeRemovalRequest $request) { $invitee = Application::findOrFail($request->get('invitee_id')); abort_if(!Carbon::parse(config('con.reg_end_date'))->isFuture() && $invitee->type !== ApplicationType::Assistant, 403, 'Only assistants may be modified once the registration period is over.'); + abort_if(!Carbon::parse(config('con.assistant_end_date'))->isFuture() && $invitee->type === ApplicationType::Assistant, 403, 'Assistants may no longer be modified once the assistant registration period is over.'); $invitee->update([ "type" => ApplicationType::Dealer,