validate([ 'name' => ['required', 'string', 'min:3', 'max:20'], 'password' => ['required', 'string', 'min:4'], ]); $player = Player::create([ 'name' => $request->name, 'password' => Hash::make($request->password), 'team' => 'none', 'score' => 0, ]); Auth::login($player); return redirect('dashboard'); } public function login(Request $request): RedirectResponse { $credentials = $request->validate([ 'name' => 'required', 'password' => 'required', ]); if (Auth::attempt($credentials)) { $player = Auth::user(); if (isset($player->is_admin)) { return redirect('/admin'); } return redirect('/dashboard'); } return back()->withErrors([ 'name' => 'The provided credentials do not match our records.', ]); } public function profile() { $player = Auth::user(); return view('/dashboard', compact('player')); } public function admin() { $admin = Auth::user(); $players = Player::all(); return view('/admin', compact('admin'), compact('players')); } public function admin_team(Request $request): RedirectResponse { $request->validate([ 'name' => ['required'], 'team' => ['required'], ]); $player = Player::where('name', $request->name)->first(); $player->team = $request->team; $player->save(); return back(); } public function score(Request $request): RedirectResponse { $request->validate([ 'score' => ['required', 'integer', 'gt:0'], ]); $player = Auth::user(); $player->score = $request->score; $player->save(); return back(); } public function logout(Request $request): RedirectResponse { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/'); } }