авпавпрв пврар23

userModel = new UserModel(); $this->session = session(); $this->pageModel = new PageModel(); } public function register() { if ($this->session->get('logged_in')) { return redirect()->to('/dashboard'); } $data = [ 'title' => 'Регистрация', 'validation' => \Config\Services::validation(), 'footer_pages' => $this->pageModel->getFooterPages(), ]; return view('auth/register', $data); } public function processRegister() { $validation = \Config\Services::validation(); $rules = [ 'username' => 'required|min_length[3]|max_length[100]|is_unique[users.username]', 'email' => 'required|valid_email|is_unique[users.email]', 'password' => 'required|min_length[6]', 'password_confirm' => 'required|matches[password]', ]; if ($this->validate($rules)) { $userData = [ 'username' => $this->request->getPost('username'), 'email' => $this->request->getPost('email'), 'password' => $this->request->getPost('password'), 'phone' => $this->request->getPost('phone'), ]; $this->userModel->insert($userData); $this->session->setFlashdata('success', 'Регистрация успешна! Теперь вы можете войти.'); return redirect()->to('/auth/login'); } return redirect()->back()->withInput()->with('validation', $validation); } public function login() { if ($this->session->get('logged_in')) { return redirect()->to('/dashboard'); } $data = [ 'title' => 'Вход', 'validation' => \Config\Services::validation(), 'footer_pages' => $this->pageModel->getFooterPages(), ]; return view('auth/login', $data); } public function processLogin() { $email = $this->request->getPost('email'); $password = $this->request->getPost('password'); $user = $this->userModel->getUserByEmail($email); if ($user && $this->userModel->verifyPassword($password, $user['password'])) { if ($user['is_banned']) { $this->session->setFlashdata('error', 'Ваш аккаунт заблокирован.'); return redirect()->back(); } $sessionData = [ 'user_id' => $user['id'], 'username' => $user['username'], 'email' => $user['email'], 'role' => $user['role'], 'logged_in' => true, ]; $this->session->set($sessionData); // Перенаправляем в зависимости от роли if ($user['role'] == 'admin') { return redirect()->to('/admin'); } return redirect()->to('/dashboard'); } $this->session->setFlashdata('error', 'Неверный email или пароль.'); return redirect()->back(); } public function logout() { $this->session->destroy(); return redirect()->to('/'); } }