diff options
author | Frederic Guillot <fred@kanboard.net> | 2015-04-11 18:05:10 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2015-04-11 18:05:10 -0400 |
commit | 7df055aff1e1056d87bb720531d60cb079805f94 (patch) | |
tree | eee8f0b873ebdebc0d87fe7b835ce0f243e6a64e /app/Controller/Auth.php | |
parent | ea9d402587d6fbcb39080a5d9a26e94ff4575443 (diff) |
Add auth controller
Diffstat (limited to 'app/Controller/Auth.php')
-rw-r--r-- | app/Controller/Auth.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/app/Controller/Auth.php b/app/Controller/Auth.php new file mode 100644 index 00000000..c1859304 --- /dev/null +++ b/app/Controller/Auth.php @@ -0,0 +1,67 @@ +<?php + +namespace Controller; + +/** + * Authentication controller + * + * @package controller + * @author Frederic Guillot + */ +class Auth extends Base +{ + /** + * Display the form login + * + * @access public + */ + public function login(array $values = array(), array $errors = array()) + { + if ($this->userSession->isLogged()) { + $this->response->redirect($this->helper->url('app', 'index')); + } + + $this->response->html($this->template->layout('auth/index', array( + 'errors' => $errors, + 'values' => $values, + 'no_layout' => true, + 'redirect_query' => $this->request->getStringParam('redirect_query'), + 'title' => t('Login') + ))); + } + + /** + * Check credentials + * + * @access public + */ + public function check() + { + $redirect_query = $this->request->getStringParam('redirect_query'); + $values = $this->request->getValues(); + list($valid, $errors) = $this->authentication->validateForm($values); + + if ($valid) { + + if ($redirect_query !== '') { + $this->response->redirect('?'.urldecode($redirect_query)); + } + + $this->response->redirect($this->helper->url('app', 'index')); + } + + $this->login($values, $errors); + } + + /** + * Logout and destroy session + * + * @access public + */ + public function logout() + { + $this->authentication->backend('rememberMe')->destroy($this->userSession->getId()); + $this->session->close(); + $this->response->redirect($this->helper->url('auth', 'login')); + } +} |