public function action_signin()
{
// Проверям, вдруг пользователь уже зашел
if (Auth::instance()->logged_in())
{
// И если это так, то отправляем его сразу на страницу пользователей
return $this->request->redirect('user');
}
// Если же пользователь не зашел, но данные на страницу пришли, то:
if ($_POST)
{
// Создаем переменную, отвечающую за связь с моделью данных User
$user = ORM::factory('user');
// в $status помещаем результат функции login
$status = Auth::instance()->login($_POST['username'], $_POST['password']);
// Если логин успешен, то
if ($status)
{
// Можем даже проверить, не админ ли это
if (Auth::instance()->logged_in('admin'))
// Если админ, редиректим в админку
$this->request->redirect('admin');
// Если логин успешен и это не админ, отправляем пользователя на его страницу
$this->request->redirect('user');
}
else
{
// Иначе ничего не получилось, грузим CSS для вывода ошибки
$this->template->styles['public/css/error.css'] = 'screen, projection';
// И пишем ...
// Только не забываем где нибудь определить $errors
$this->errors[] = 'Неверный логин или пароль!';
}
}
// Грузим view логина, передаем туда ошибку через bind
$content = View::factory('sign/' . $this->request->action())
->bind('errors', $this->errors);
// Общая CSS для авторизации
$this->template->styles['public/css/signin.css'] = 'screen, projection';
// Заголовок
$this->template->title = 'Авторизация';
$this->template->content = $content;
}