From 685f10ce44e63b621d11365ff5bda59360aa8423 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Tue, 6 Aug 2024 12:58:03 -0500 Subject: [PATCH] Log school changes Work on #61 --- .../Controllers/Admin/SchoolController.php | 28 +++++++++++++++ app/Http/Controllers/SchoolController.php | 35 ++++++++++++++++++- routes/user.php | 2 +- 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Admin/SchoolController.php b/app/Http/Controllers/Admin/SchoolController.php index 3d335a6..702b602 100644 --- a/app/Http/Controllers/Admin/SchoolController.php +++ b/app/Http/Controllers/Admin/SchoolController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; +use App\Models\AuditLogEntry; use App\Models\School; use App\Models\SchoolEmailDomain; use App\Services\Invoice\InvoiceDataService; @@ -69,6 +70,13 @@ class SchoolController extends Controller 'state' => request('state'), 'zip' => request('zip'), ]); + $message = 'Modified school #'.$school->id.' - '.$school->name.' with address
'.$school->address.'
'.$school->city.', '.$school->state.' '.$school->zip; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['schools' => [$school->id]], + ]); return redirect()->route('admin.schools.show', ['school' => $school->id])->with('success', 'School '.$school->name.' updated'); @@ -100,6 +108,13 @@ class SchoolController extends Controller 'state' => request('state'), 'zip' => request('zip'), ]); + $message = 'Created school #'.$school->id.' - '.$school->name.' with address
'.$school->address.'
'.$school->city.', '.$school->state.' '.$school->zip; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['schools' => [$school->id]], + ]); return redirect('/admin/schools')->with('success', 'School '.$school->name.' created'); } @@ -110,6 +125,13 @@ class SchoolController extends Controller return to_route('admin.schools.index')->with('error', 'You cannot delete a school with students.'); } $name = $school->name; + $message = 'Delete school #'.$school->id.' - '.$school->name; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['schools' => [$school->id]], + ]); $school->delete(); return to_route('admin.schools.index')->with('success', 'School '.$school->name.' deleted'); @@ -128,6 +150,12 @@ class SchoolController extends Controller 'school_id' => $school->id, 'domain' => request('domain'), ]); + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => 'Added '.request('domain').' as an email domain for school #'.$school->id.' - '.$school->name, + 'affected' => ['schools' => [$school->id]], + ]); return redirect()->route('admin.schools.show', $school)->with('success', 'Domain Added'); diff --git a/app/Http/Controllers/SchoolController.php b/app/Http/Controllers/SchoolController.php index a084107..fa4bf75 100644 --- a/app/Http/Controllers/SchoolController.php +++ b/app/Http/Controllers/SchoolController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\AuditLogEntry; use App\Models\School; use App\Models\SchoolEmailDomain; use Illuminate\Http\RedirectResponse; @@ -34,16 +35,41 @@ class SchoolController extends Controller 'state' => request('state'), 'zip' => request('zip'), ]); + $message = 'Created school #'.$school->id.' - '.$school->name.' with address
'.$school->address.'
'.$school->city.', '.$school->state.' '.$school->zip; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['schools' => [$school->id]], + ]); if (! Auth::user()->school) { Auth::user()->update([ 'school_id' => $school->id, ]); - + $message = 'Set user '.auth()->user()->full_name().' ('.auth()->user()->email.') as a director at '.$school->name.'(#'.$school->id.')'; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'users' => [auth()->user()->id], + 'schools' => [$school->id], + ], + ]); SchoolEmailDomain::create([ 'school_id' => $school->id, 'domain' => Auth::user()->emailDomain(), ]); + $message = 'Added '.auth()->user()->emailDomain().' as an email domain for '.$school->name.' (#'.$school->id.')'; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'schools' => [$school->id], + ], + ]); } return redirect('/schools/'.$school->id); @@ -96,6 +122,13 @@ class SchoolController extends Controller 'state' => request('state'), 'zip' => request('zip'), ]); + $message = 'Modified school #'.$school->id.' - '.$school->name.' with address
'.$school->address.'
'.$school->city.', '.$school->state.' '.$school->zip; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['schools' => [$school->id]], + ]); return redirect()->route('schools.show', $school->id)->with('success', 'School details updated'); } diff --git a/routes/user.php b/routes/user.php index 95bd5b1..2d84a45 100644 --- a/routes/user.php +++ b/routes/user.php @@ -45,6 +45,6 @@ Route::middleware(['auth', 'verified'])->controller(SchoolController::class)->gr Route::get('/schools/create', 'create')->name('schools.create'); Route::post('/schools', 'store')->name('schools.store'); Route::get('/schools/{school}/edit', 'edit')->name('schools.edit'); - Route::get('/schools/{school}', 'show')->name('schools.show')->name('schools.show'); + Route::get('/schools/{school}', 'show')->name('schools.show'); Route::patch('/schools/{school}', 'update')->name('schools.update'); });