is_admin) abort(403); $users = User::with('school')->orderBy('last_name')->orderBy('first_name')->get(); return view('admin.users.index', ['users' => $users]); } public function edit(User $user) { if (! Auth::user()->is_admin) abort(403); $schools = School::orderBy('name')->get(); return view('admin.users.edit', ['user' => $user,'schools' => $schools]); } public function create() { if (! Auth::user()->is_admin) abort(403); $schools = School::orderBy('name')->get(); return view('admin.users.create', ['schools' => $schools]); } public function update(Request $request, User $user) { if (! Auth::user()->is_admin) abort(403); request()->validate([ 'first_name' => ['required'], 'last_name' => ['required'], 'email' => ['required', 'email'], 'cell_phone' => ['required'], 'judging_preference' => ['required'], 'school_id' => ['required','exists:schools,id'], ]); $user->update([ 'first_name' => request('first_name'), 'last_name' => request('last_name'), 'email' => request('email'), 'cell_phone' => request('cell_phone'), 'judging_preference' => request('judging_preference'), 'school_id' => request('school_id') ]); AuditionChange::dispatch(false); return redirect('/admin/users'); } public function store(Request $request) { $request->validate([ 'first_name' => ['required'], 'last_name' => ['required'], 'email' => ['required', 'email','unique:users'], ]); // Genearte a random password $randomPassword = Str::random(12); $user = \App\Models\User::make([ 'first_name' => request('first_name'), 'last_name' => request('last_name'), 'email' => request('email'), 'cell_phone' => request('cell_phone'), 'judging_preference' => request('judging_preference'), 'password' => Hash::make($randomPassword), ]); if (!is_null(request('school_id'))) { $request->validate([ 'school_id' => ['exists:schools,id'] ]); } $user->school_id = request('school_id'); $user->save(); Mail::to($user->email)->send(new NewUserPassword($user, $randomPassword)); return redirect('/admin/users'); } }