diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 82a804e..76c4793 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Admin; +use App\Actions\Schools\SetHeadDirector; use App\Http\Controllers\Controller; use App\Mail\NewUserPassword; use App\Models\AuditLogEntry; @@ -13,6 +14,8 @@ use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Str; +use function auditionLog; + class UserController extends Controller { public function index() @@ -45,7 +48,7 @@ class UserController extends Controller return view('admin.users.create', ['schools' => $schools]); } - public function update(Request $request, User $user) + public function update(Request $request, User $user, SetHeadDirector $headSetter) { if (! Auth::user()->is_admin) { abort(403); @@ -63,6 +66,7 @@ class UserController extends Controller ]); $validData['is_admin'] = $request->get('is_admin') == 'on' ? 1 : 0; $validData['is_tab'] = $request->get('is_tab') == 'on' ? 1 : 0; + $validData['is_head'] = $request->get('is_head') == 'on' ? 1 : 0; $user->update([ 'first_name' => $validData['first_name'], 'last_name' => $validData['last_name'], @@ -76,11 +80,11 @@ class UserController extends Controller $user->refresh(); $logged_school = $user->school_id ? $user->school->name : 'No School'; $message = 'Updated user #'.$user->id.' - '.$oldEmail - .'
Name: '.$user->full_name() - .'
Email: '.$user->email - .'
Cell Phone: '.$user->cell_phone - .'
Judging Pref: '.$user->judging_preference - .'
School: '.$logged_school; + .'
Name: '.$user->full_name() + .'
Email: '.$user->email + .'
Cell Phone: '.$user->cell_phone + .'
Judging Pref: '.$user->judging_preference + .'
School: '.$logged_school; AuditLogEntry::create([ 'user' => auth()->user()->email, @@ -106,6 +110,16 @@ class UserController extends Controller 'affected' => ['users' => [$user->id]], ]); } + if ($user->hasFlag('head_director') != $validData['is_head'] && ! is_null($user->school_id)) { + if ($validData['is_head']) { + $headSetter->setHeadDirector($user); + } else { + $user->removeFlag('head_director'); + $logMessage = 'Removed '.$user->full_name().' as head director at '.$user->school->name; + $logAffected = ['users' => [$user->id], 'schools' => [$user->school_id]]; + auditionLog($logMessage, $logAffected); + } + } return redirect('/admin/users'); } diff --git a/resources/views/admin/users/edit.blade.php b/resources/views/admin/users/edit.blade.php index f0afd81..9ac2c34 100644 --- a/resources/views/admin/users/edit.blade.php +++ b/resources/views/admin/users/edit.blade.php @@ -22,7 +22,7 @@ - + School @foreach ($schools as $school) @@ -31,6 +31,11 @@ @endforeach +
+ + Head Director + +
Administrator