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