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');