From ac12d6604a0a19c04a5cb365d9e3f586b6488124 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Tue, 6 Aug 2024 11:27:16 -0500 Subject: [PATCH] Log student changes Work on #61 --- .../Controllers/Admin/StudentController.php | 43 +++++++++++++++++-- app/Http/Controllers/StudentController.php | 38 ++++++++++++++-- 2 files changed, 73 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Admin/StudentController.php b/app/Http/Controllers/Admin/StudentController.php index c0a4a3c..f536f88 100644 --- a/app/Http/Controllers/Admin/StudentController.php +++ b/app/Http/Controllers/Admin/StudentController.php @@ -4,11 +4,14 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Models\Audition; +use App\Models\AuditLogEntry; use App\Models\School; use App\Models\Student; use Illuminate\Support\Facades\Auth; use function abort; +use function auth; +use function request; use function to_route; use function view; @@ -55,14 +58,24 @@ class StudentController extends Controller return redirect('/admin/students/create')->with('error', 'This student already exists.'); } - Student::create([ + $student = Student::create([ 'first_name' => request('first_name'), 'last_name' => request('last_name'), 'grade' => request('grade'), 'school_id' => request('school_id'), ]); + $message = 'Created student #'.$student->id.' - '.$student->full_name().'
Grade: '.$student->grade.'
School: '.$student->school->name; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'students' => [$student->id], + 'schools' => [$student->school_id], + ], + ]); - return redirect('/admin/students'); + return redirect('/admin/students')->with('success', 'Created student successfully'); } public function edit(Student $student) @@ -103,7 +116,8 @@ class StudentController extends Controller ->where('school_id', request('school_id')) ->where('id', '!=', $student->id) ->exists()) { - return redirect('/admin/students/'.$student->id.'/edit')->with('error', 'A student with that name already exists at that school'); + return redirect('/admin/students/'.$student->id.'/edit')->with('error', + 'A student with that name already exists at that school'); } $student->update([ @@ -113,7 +127,18 @@ class StudentController extends Controller 'school_id' => request('school_id'), ]); - return redirect('/admin/students'); + $message = 'Updated student #'.$student->id.'
Name: '.$student->full_name().'
Grade: '.$student->grade.'
School: '.$student->school->name; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'students' => [$student->id], + 'schools' => [$student->school_id], + ], + ]); + + return redirect('/admin/students')->with('success', 'Student updated'); } @@ -123,6 +148,16 @@ class StudentController extends Controller return to_route('admin.students.index')->with('error', 'You cannot delete a student with entries.'); } $name = $student->full_name(); + $message = 'Deleted student #'.$student->id.'
Name: '.$student->full_name().'
Grade: '.$student->grade.'
School: '.$student->school->name; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'students' => [$student->id], + 'schools' => [$student->school_id], + ], + ]); $student->delete(); return to_route('admin.students.index')->with('success', 'Student '.$name.' deleted successfully.'); diff --git a/app/Http/Controllers/StudentController.php b/app/Http/Controllers/StudentController.php index 82baca5..1b24434 100644 --- a/app/Http/Controllers/StudentController.php +++ b/app/Http/Controllers/StudentController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Models\Audition; +use App\Models\AuditLogEntry; use App\Models\Student; use App\Rules\UniqueFullNameAtSchool; use Illuminate\Http\Request; @@ -58,10 +59,18 @@ class StudentController extends Controller 'grade' => request('grade'), 'school_id' => Auth::user()->school_id, ]); + $message = 'Created student #'.$student->id.' - '.$student->full_name().'
Grade: '.$student->grade.'
School: '.$student->school->name; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'students' => [$student->id], + 'schools' => [$student->school_id], + ], + ]); - $request->session()->put('auditionMessages', ['success', 'I did it again ma']); - - return redirect('/students'); + return redirect('/students')->with('success', 'Student Created'); } /** @@ -104,7 +113,8 @@ class StudentController extends Controller ->where('school_id', Auth::user()->school_id) ->where('id', '!=', $student->id) ->exists()) { - return redirect()->route('students.edit', $student)->with('error', 'A student with that name already exists at your school.'); + return redirect()->route('students.edit', $student)->with('error', + 'A student with that name already exists at your school.'); } $student->update([ @@ -112,6 +122,16 @@ class StudentController extends Controller 'last_name' => request('last_name'), 'grade' => request('grade'), ]); + $message = 'Updated student #'.$student->id.'
Name: '.$student->full_name().'
Grade: '.$student->grade.'
School: '.$student->school->name; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'students' => [$student->id], + 'schools' => [$student->school_id], + ], + ]); return redirect('/students')->with('success', 'Student updated successfully.'); } @@ -124,6 +144,16 @@ class StudentController extends Controller if ($request->user()->cannot('delete', $student)) { abort(403); } + $message = 'Deleted student #'.$student->id.'
Name: '.$student->full_name().'
Grade: '.$student->grade.'
School: '.$student->school->name; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'students' => [$student->id], + 'schools' => [$student->school_id], + ], + ]); $student->delete(); return redirect(route('students.index'));