From a9cb8ca5845a4c43d6ca105232c7e4a6675d2497 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Thu, 27 Jun 2024 23:50:07 -0500 Subject: [PATCH] Bug Kill --- app/Http/Controllers/SchoolController.php | 50 +++++++++++-------- resources/views/admin/schools/index.blade.php | 2 +- routes/admin.php | 2 +- 3 files changed, 32 insertions(+), 22 deletions(-) diff --git a/app/Http/Controllers/SchoolController.php b/app/Http/Controllers/SchoolController.php index 44edaf9..a09e4f7 100644 --- a/app/Http/Controllers/SchoolController.php +++ b/app/Http/Controllers/SchoolController.php @@ -4,12 +4,11 @@ namespace App\Http\Controllers; use App\Models\School; use App\Models\SchoolEmailDomain; -use Illuminate\Auth\Access\Gate; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; + use function abort; -use function dd; use function redirect; use function request; @@ -17,7 +16,9 @@ class SchoolController extends Controller { public function store(Request $request): RedirectResponse { - if ($request->user()->cannot('create', School::class)) abort(403); + if ($request->user()->cannot('create', School::class)) { + abort(403); + } request()->validate([ 'name' => ['required', 'min:3', 'max:30'], 'address' => ['required'], @@ -34,45 +35,52 @@ class SchoolController extends Controller 'zip' => request('zip'), ]); - // TODO allow for an audition administrator that is not connected to school and needs to create a school without associating with it - if (! Auth::user()->school) { Auth::user()->update([ - 'school_id' => $school->id + 'school_id' => $school->id, ]); SchoolEmailDomain::create([ 'school_id' => $school->id, - 'domain' => Auth::user()->emailDomain() + 'domain' => Auth::user()->emailDomain(), ]); } - - return redirect('/schools/' . $school->id); + return redirect('/schools/'.$school->id); } public function show(Request $request, School $school) { - if ($request->user()->cannot('view',$school)) abort(403); + if ($request->user()->cannot('view', $school)) { + abort(403); + } return view('schools.show', ['school' => $school]); } public function create(Request $request) { - if ($request->user()->cannot('create', School::class)) abort(403); + if ($request->user()->cannot('create', School::class)) { + abort(403); + } + return view('schools.create'); } public function edit(Request $request, School $school) { - if ($request->user()->cannot('update',$school)) abort(403); + if ($request->user()->cannot('update', $school)) { + abort(403); + } + return view('schools.edit', ['school' => $school]); } public function update(Request $request, School $school) { - if ($request->user()->cannot('update',$school)) abort(403); + if ($request->user()->cannot('update', $school)) { + abort(403); + } request()->validate([ 'name' => ['required', 'min:3', 'max:30'], 'address' => ['required'], @@ -82,21 +90,23 @@ class SchoolController extends Controller ]); $school->update([ - 'name' => request('name'), - 'address' => request('address'), - 'city' => request('city'), - 'state' => request('state'), - 'zip' => request('zip'), + 'name' => request('name'), + 'address' => request('address'), + 'city' => request('city'), + 'state' => request('state'), + 'zip' => request('zip'), ]); + // TODO Handle redirect after updating school more elegantly - return redirect('/schools/' . $school->id); + return redirect('/schools/'.$school->id); } public function my_school() { if (Auth::user()->school) { - return redirect('/schools/' . Auth::user()->school->id); + return redirect('/schools/'.Auth::user()->school->id); } + return redirect('/schools/create'); } } diff --git a/resources/views/admin/schools/index.blade.php b/resources/views/admin/schools/index.blade.php index c674387..b640084 100644 --- a/resources/views/admin/schools/index.blade.php +++ b/resources/views/admin/schools/index.blade.php @@ -6,7 +6,7 @@ Schools Click school name to edit - New School + New School diff --git a/routes/admin.php b/routes/admin.php index c391001..c318db7 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -96,8 +96,8 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')-> Route::prefix('schools')->controller(\App\Http\Controllers\Admin\SchoolController::class)->group(function () { Route::post('/{school}/add_domain', 'add_domain')->name('admin.schools.add_domain'); Route::get('/', 'index')->name('admin.schools.index'); - Route::get('/{school}', 'show')->name('admin.schools.show'); Route::get('/create', 'create')->name('admin.schools.create'); + Route::get('/{school}', 'show')->name('admin.schools.show'); Route::get('/{school}/edit', 'edit')->name('admin.schools.edit'); Route::patch('/{school}', 'update')->name('admin.schools.update'); Route::post('/', 'store')->name('admin.schools.store');