diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index dec1523..34b6bd3 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use App\Mail\NewUserPassword; +use App\Models\AuditLogEntry; use App\Models\School; use App\Models\User; use Illuminate\Http\Request; @@ -49,7 +50,9 @@ class UserController extends Controller if (! Auth::user()->is_admin) { abort(403); } - + $oldEmail = $user->email; + $wasAdmin = $user->is_admin; + $wasTab = $user->is_tab; $validData = $request->validate([ 'first_name' => ['required'], 'last_name' => ['required'], @@ -70,6 +73,37 @@ class UserController extends Controller 'is_admin' => $validData['is_admin'], 'is_tab' => $validData['is_tab'], ]); + $user->refresh(); + $message = 'Updated user #'.$user->id.' - '.$oldEmail + .'
Name: '.$user->full_name() + .'
Email: '.$user->email + .'
Cell Phone: '.$user->cell_phone + .'
Judging Pref: '.$user->judging_preference + .'
School: '.$user->school->name ?? 'none'; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['users' => [$user->id]], + ]); + if ($user->is_admin != $wasAdmin) { + $messageStart = $user->is_admin ? 'Granted admin privileges to ' : 'Revoked admin privileges from '; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $messageStart.$user->full_name().' - '.$user->email, + 'affected' => ['users' => [$user->id]], + ]); + } + if ($user->is_tab != $wasTab) { + $messageStart = $user->is_tab ? 'Granted tabulation privileges to ' : 'Revoked tabulation privileges from '; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $messageStart.$user->full_name().' - '.$user->email, + 'affected' => ['users' => [$user->id]], + ]); + } return redirect('/admin/users'); } @@ -101,7 +135,25 @@ class UserController extends Controller } $user->school_id = request('school_id'); $user->save(); - + $message = 'Created user '.$user->email.' - '.$user->full_name().'
Cell Phone: '.$user->cell_phone.'
Judging Pref: '.$user->judging_preference; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['users' => [$user->id]], + ]); + if ($user->school_id) { + $message = 'Set user '.$user->full_name().' ('.$user->email.') as a director at '.$user->school->name.'(#'.$user->school->id.')'; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => [ + 'users' => [$user->id], + 'schools' => [$user->id], + ], + ]); + } Mail::to($user->email)->send(new NewUserPassword($user, $randomPassword)); return redirect('/admin/users'); @@ -112,6 +164,13 @@ class UserController extends Controller if (! Auth::user()->is_admin) { abort(403); } + $message = 'Deleted user '.$user->email; + AuditLogEntry::create([ + 'user' => auth()->user()->email, + 'ip_address' => request()->ip(), + 'message' => $message, + 'affected' => ['users' => [$user->id]], + ]); $user->delete(); return redirect()->route('admin.users.index')->with('success', 'User deleted successfully');