redirect('/'); } $users = User::all(); return $this->render('auth/login', [ 'title' => 'Login - CanteenHub', 'users' => $users, ], 'layouts/main'); } public function login(Request $request, Response $response): Response { $identifier = trim((string)$request->post('identifier', '')); $password = (string)$request->post('password', ''); if (empty($identifier) || empty($password)) { return $this->redirect('/login', null, 'Please provide your username/email and password.'); } if (Auth::attempt($identifier, $password)) { $user = Auth::user(); return $this->redirect('/', "Welcome back, {$user['name']}!"); } return $this->redirect('/login', null, 'Invalid username or password.'); } public function quickLogin(Request $request, Response $response): Response { $userId = (int)$request->post('user_id'); $user = User::find($userId); if ($user) { Auth::login($user); return $this->redirect('/', "Logged in as {$user['name']}!"); } return $this->redirect('/login', null, 'User not found.'); } public function registerForm(Request $request, Response $response): string|Response { if (Auth::check()) { return $this->redirect('/'); } return $this->render('auth/register', [ 'title' => 'Register Account - CanteenHub', ], 'layouts/main'); } public function register(Request $request, Response $response): Response { $name = trim((string)$request->post('name', '')); $username = trim((string)$request->post('username', '')); $email = trim((string)$request->post('email', '')); $password = (string)$request->post('password', ''); if (empty($name) || empty($username) || empty($email) || strlen($password) < 4) { return $this->redirect('/register', null, 'Please fill in all fields (password must be at least 4 characters).'); } if (User::findByIdentifier($username) || User::findByIdentifier($email)) { return $this->redirect('/register', null, 'Username or Email is already registered.'); } try { $userId = User::create($name, $username, $email, $password); $user = User::find($userId); Auth::login($user); return $this->redirect('/', "Account registered! Welcome to CanteenHub, {$name}!"); } catch (\Throwable $e) { return $this->redirect('/register', null, 'Registration error: ' . $e->getMessage()); } } public function logout(Request $request, Response $response): Response { Auth::logout(); return $this->redirect('/login', 'You have been logged out.'); } }