public function action_login()
{
Kohana::$log->add(Kohana::DEBUG, 'Executing Controller_Auth::action_login');
// If user is already logged in, redirect to admin main
if ($this->a2->logged_in()) {
Kohana::$log->add('ACCESS', "Attempt to login made by logged-in user");
Kohana::$log->add(Kohana::DEBUG, "Attempt to login made by logged-in user");
Message::instance()->error(Kohana::message('a2', 'login.already'));
$this->request->redirect(Route::get('admin')->uri());
}
$this->template->content = View::factory('admin/auth/login')->bind('post', $post)->bind('errors', $errors);
$post = Validate::factory($_POST)->filter(TRUE, 'trim')->rule('username', 'not_empty')->rule('password', 'not_empty')->callback('username', array($this, 'check_username'));
if ($post->check()) {
if ($this->a1->login($post['username'], $post['password'], !empty($post['remember']))) {
Kohana::$log->add('ACCESS', 'Successful login made with username, ' . $post['username']);
Message::instance()->info(Kohana::message('a2', 'login.success'), array(':name' => $post['username']));
// If external request, redirect to referring URL or admin main
if (!$this->_internal) {
// Get referring URI, if any
$referrer = $this->session->get('referrer') ? $this->session->get('referrer') : Route::get('admin')->uri();
$this->session->delete('referrer');
$this->request->redirect($referrer);
}
} else {
Kohana::$log->add('ACCESS', 'Unsuccessful login attempt made with username, ' . $post['username']);
$post->error('password', 'incorrect');
}
}
$errors = $post->errors('admin');
}