diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 55e4238..d431284 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -15,9 +15,12 @@ use App\Models\AuditLogEntry; use App\Models\School; use App\Models\User; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Str; +use function auditionLog; + class UserController extends Controller { public function index() @@ -31,7 +34,8 @@ class UserController extends Controller { $schools = School::orderBy('name')->get(); - $logEntries = AuditLogEntry::whereJsonContains('affected->users', $user->id)->orderBy('created_at', 'desc')->get(); + $logEntries = AuditLogEntry::whereJsonContains('affected->users', $user->id)->orderBy('created_at', + 'desc')->get(); $userActions = AuditLogEntry::where('user', $user->email)->orderBy('created_at', 'desc')->get(); return view('admin.users.edit', compact('user', 'schools', 'logEntries', 'userActions')); @@ -122,4 +126,22 @@ class UserController extends Controller return redirect()->route('admin.users.index')->with('success', 'User deleted successfully'); } + + public function setPassword(User $user, Request $request) + { + $validated = $request->validate([ + 'admin_password' => ['required', 'string', 'current_password:web'], + 'new_password' => ['required', 'string', 'confirmed', 'min:8'], + ]); + $user->forceFill([ + 'password' => Hash::make($validated['new_password']), + ])->save(); + + auditionLog('Manually set password for '.$user->email, [ + 'users' => [$user->id], + ]); + + return redirect()->route('admin.users.index')->with('success', + 'Password changed successfully for '.$user->email); + } } diff --git a/resources/views/admin/users/edit.blade.php b/resources/views/admin/users/edit.blade.php index be2a031..b65bfc0 100644 --- a/resources/views/admin/users/edit.blade.php +++ b/resources/views/admin/users/edit.blade.php @@ -54,6 +54,21 @@ + + + Manually Set Password + +
+ + + + + Update Password + +
+
+ User Actions diff --git a/routes/admin.php b/routes/admin.php index 93992a2..885101f 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -191,6 +191,7 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')-> Route::get('/{user}/edit', 'edit')->name('admin.users.edit'); Route::patch('/{user}', 'update')->name('admin.users.update'); Route::delete('/{user}', 'destroy')->name('admin.users.destroy'); + Route::post('/{user}/set_password', 'setPassword')->name('admin.users.setPassword'); }); // Admin Card Routes