Controller_Admin_Auth::action_login PHP Метод

action_login() публичный Метод

Display login form and perform login
public action_login ( )
    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');
    }