PageRenderTime 40ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/application/modules/mybase/controllers/AuthController.php

https://github.com/besters/My-Base
PHP | 96 lines | 79 code | 16 blank | 1 comment | 4 complexity | 4c072b9db222dae38263be66587df318 MD5 | raw file
  1. <?php
  2. class Mybase_AuthController extends Unodor_Controller_Action
  3. {
  4. protected $_flashMessenger;
  5. protected $_form;
  6. public function init()
  7. {
  8. $this->_redirector = $this->_helper->getHelper('Redirector');
  9. }
  10. public function loginAction()
  11. {
  12. $this->_form = new Mybase_Form_Login();
  13. if(!$this->getRequest()->isPost()){
  14. $this->view->form = $this->_form;
  15. }else{
  16. $form = $this->_form;
  17. if(!$form->isValid($_POST)){
  18. $this->view->form = $form;
  19. $this->_flash('Všechna pole musí být vyplněna', 'error', false);
  20. }else{
  21. $values = $form->getValues();
  22. $auth = Zend_Auth::getInstance();
  23. $authAdapter = new Zend_Auth_Adapter_DbTable(
  24. Zend_Db_Table_Abstract::getDefaultAdapter(),
  25. 'user_login',
  26. 'username',
  27. 'password',
  28. 'MD5(?)'
  29. );
  30. $modelAccount = new Model_Account();
  31. $idaccount = $modelAccount->getId($this->_request->account);
  32. $select = $authAdapter->getDbSelect();
  33. $select->where('idaccount = ' . $idaccount);
  34. $authAdapter->setIdentity($values['username']);
  35. $authAdapter->setCredential($values['password']);
  36. $result = $auth->authenticate($authAdapter);
  37. switch($result->getCode()){
  38. case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
  39. $this->view->form = $form;
  40. $this->_flash('Špatné uživatelské jméno', 'error', false);
  41. break;
  42. case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
  43. $this->view->form = $form;
  44. $this->_flash('Špatné heslo', 'error', false);
  45. break;
  46. case Zend_Auth_Result::SUCCESS:
  47. $storage = $auth->getStorage();
  48. $storage->write($authAdapter->getResultRowObject(array('email', 'name', 'surname', 'username', 'iduser', 'owner', 'administrator')));
  49. if($form->getValue('remember') == 1)
  50. Zend_Session::rememberMe(60 * 60 * 24 * 14);
  51. //$this->_redirect('http://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
  52. $this->_redirect('/');
  53. break;
  54. case Zend_Auth_Result::FAILURE:
  55. $this->view->form = $form;
  56. $this->_flash('Neznámá chyba (FAILURE)', 'error', false);
  57. break;
  58. case Zend_Auth_Result::FAILURE_IDENTITY_AMBIGUOUS:
  59. $this->view->form = $form;
  60. $this->_flash('"Nejednoznačné"', 'error', false);
  61. break;
  62. case Zend_Auth_Result::FAILURE_UNCATEGORIZED:
  63. $this->view->form = $form;
  64. $this->_flash('Neznámá chyba(FAILURE_UNCATEGORIZED)', 'error', false);
  65. break;
  66. default:
  67. $this->view->form = $form;
  68. $this->_flash('Neznámá chyba (default)', 'error', false);
  69. break;
  70. }
  71. }
  72. }
  73. $this->_helper->layout->disableLayout();
  74. }
  75. public function logoutAction()
  76. {
  77. Zend_Auth::getInstance()->clearIdentity();
  78. return $this->_redirect('index');
  79. }
  80. }