public function getForm()
 {
     $form = new Default_Form_Login();
     $form->setAction(Zend_Controller_Front::getInstance()->getBaseUrl() . '/login/process/returnUrl/' . $this->getRequest()->getParam('returnUrl'));
     $form->setMethod('post');
     return $form;
 }
 public function loginAction()
 {
     $this->view->pagina_action = "Login";
     $this->view->pagina_descricao = "Informe seu usuário e senha para acessar o sistema.";
     // Instancia o formulário de login
     $objFormLogin = new Default_Form_Login();
     if ($this->_request->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($objFormLogin->isValid($data)) {
             $objAuth = Zend_Auth::getInstance();
             $authAdapter = new Zend_Auth_Adapter_DbTable(Lepard_Db_Adapter::get(), 'usuario', 'login', 'password');
             $authAdapter->setIdentity($data['login'])->setCredential($data['password']);
             //print_r($authAdapter);die;
             $result = $objAuth->authenticate($authAdapter);
             if ($result->isValid()) {
                 /**
                  * Pega os dados do usuário, omitindo a senha
                  * http://framework.zend.com/manual/en/zend.auth.adapter.dbtable.html
                  */
                 $authData = $authAdapter->getResultRowObject(null, 'password');
                 // Armazena os dados do usuário
                 $objAuth->getStorage()->write($authData);
                 echo 'Login efetuado com sucesso!';
                 $this->getHelper('Redirector')->setGotoUrl('/index');
             } else {
                 echo 'Os dados informados (login/senha) não são válidos.';
             }
         }
     }
     $this->view->form = $objFormLogin;
 }
 public function requireuserAction()
 {
     // 403 error -- authorization failed
     $this->getResponse()->setRawHeader($_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden');
     $this->view->status = false;
     $this->view->error = Zend_Registry::get('Zend_Translate')->_('You are not authorized to access this resource.');
     // Show the login form for them :P
     $this->view->form = $form = new Default_Form_Login();
     $form->addError('Vui lòng đăng nhập để tiếp tục...');
     $form->return_url->setValue(Zend_Controller_Front::getInstance()->getRouter()->assemble(array()));
 }
Exemple #4
0
 public function loginAction()
 {
     if (Zend_Auth::getInstance()->hasIdentity()) {
     } else {
         $this->_helper->layout->disableLayout();
     }
     $form = new Default_Form_Login();
     $this->view->form = $form;
     $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
     $this->view->messages = $this->_flashMessenger->getMessages();
     //Verifica se existem dados de POST
     if ($this->getRequest()->getPost()) {
         $data = $this->getRequest()->getPost();
         //Formulário corretamente preenchido?
         if ($form->isValid($data)) {
             $login = $form->getValue('login');
             $senha = $form->getValue('senha');
             $model_user = new Default_Model_Usuario();
             $ativo = $model_user->buscarPorLoginUsuarios($login);
             if ($ativo['status_usuario'] == 1) {
                 $senhaAlterada = $ativo['senha_alterada'];
                 try {
                     $auth = new Default_Model_Login();
                     $auth->login($login, $senha);
                     if ($senhaAlterada == 0) {
                         return $this->_helper->redirector->goToRoute(array('module' => 'admin', 'controller' => 'index', 'action' => 'index'), null, true);
                     } else {
                         return $this->_helper->redirector->goToRoute(array('module' => 'cadastros', 'controller' => 'usuarios', 'action' => 'alterar-senha-primeiro-acesso'), null, true);
                     }
                 } catch (Exception $e) {
                     echo "<script type='text/javascript'>";
                     echo "alert('Combinação de Usuário + Senha digitada está incorreta!');";
                     echo "</script>";
                 }
             } else {
                 echo "<script type='text/javascript'>";
                 echo "alert('O acesso a este usuário foi negado por o mesmo encontrar-se inativo em nosso sistema.');";
                 echo "</script>";
             }
         } else {
             $form->populate($data);
         }
     }
     ## Log da transação ##
     //        $log = new Acesso_Log;
     //        $log->Log();
 }
Exemple #5
0
 public function preDispatch()
 {
     $view = $this->getActionController()->view;
     $form = new Default_Form_Login();
     $redirector = new Khcn_Controller_Action_Standard_Helper_Redirector();
     $request = $this->getActionController()->getRequest();
     if ($request->isPost() && $request->getPost('submit')) {
         if ($form->isValid($request->getPost())) {
             //1.Goi ket noi voi Zend Db
             $db = Zend_Registry::get('connectDB');
             //2. Khoi tao Zend Auth
             $auth = Zend_Auth::getInstance();
             //3. Khai bao bang va 2 cot se su dung so sanh trong qua trinh login
             $authAdapter = new Zend_Auth_Adapter_DbTable($db);
             $authAdapter->setTableName('nguoi_dung')->setIdentityColumn('ten_dang_nhap')->setCredentialColumn('mat_khau');
             //4. Lay gia tri duoc gui qua tu FORM
             $uname = $form->getValue('Username');
             $paswd = md5($form->getValue('Password'));
             $session = new Zend_Session_Namespace('users');
             $session->username = $form->getValue('Username');
             //5. Dua vao so sanh voi du lieu khai bao o muc 3
             $authAdapter->setIdentity($uname);
             $authAdapter->setCredential($paswd);
             //6. Kiem tra trang thai cua user neu status = 1 moi duoc login
             //$select = $authAdapter->getDbSelect();
             //$select->where('status = 1');
             //7. Lay ket qua truy van
             $result = $auth->authenticate($authAdapter);
             if ($result->isValid()) {
                 //8. Lay nhung du lieu can thiet trong bang users neu login thanh cong
                 $data = $authAdapter->getResultRowObject(null, array('password'));
                 //9. Luu  nhung du lieu cua member vao session
                 $auth->getStorage()->write($data);
                 $urlOptions = array('controller' => 'index', 'action' => 'index');
                 $redirector->gotoRouteAndExit($urlOptions, null, true);
             } else {
                 $urlOptions = array('controller' => 'index', 'action' => 'login-default');
                 $redirector->gotoRouteAndExit($urlOptions, null, true);
             }
         }
     }
     $view->loginForm = $form;
 }
Exemple #6
0
 public function loginAction()
 {
     $form = new Default_Form_Login();
     $form->setDecorators(array('ViewScript', array('ViewScript', array('viewScript' => 'forms/login.phtml'))));
     $this->view->form = $form;
     if ($this->getRequest()->isPost()) {
         if ($form->isValid($this->getRequest()->getPost())) {
             $dbAdapter = new Zend_Auth_Adapter_DbTable($this->db, 'users', 'email', 'password', 'MD5(?) AND deleted = "0"');
             $dbAdapter->setIdentity($this->getRequest()->getPost('tbUser'))->setCredential($this->getRequest()->getPost('tbPass'));
             $auth = Zend_Auth::getInstance();
             $result = $auth->authenticate($dbAdapter);
             if (!$result->isValid()) {
                 switch ($result->getCode()) {
                     case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                     case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                         $this->_flashMessenger->addMessage("<div class='error canhide'><p>Incorrect email or password!<a href='javascript:;'>Close</a><p>/div>");
                         break;
                     default:
                         /** do stuff for other failure **/
                         $this->_flashMessenger->addMessage("<div class='error canhide'><p>Incorrect email or password!<a href='javascript:;'>Close</a></p>/div>");
                         break;
                 }
             } else {
                 $adminUserId = $dbAdapter->getResultRowObject();
                 $adminUser = new Default_Model_Users();
                 $adminUser->find($adminUserId->id);
                 if ($adminUser->getStatus() == 0) {
                     $this->_flashMessenger->addMessage("<div class='error canhide'><p>Your account was not confirmed! Please check your email for the confirmation email!<a href='javascript:;'>Close</a></p></div>");
                     $auth->clearIdentity();
                 } else {
                     $storage = $auth->getStorage();
                     $adminUser->saveLastlogin();
                     $storage->write($adminUser);
                 }
             }
             $this->_redirect('/auth/login/');
         }
     }
 }
 public function indexAction()
 {
     // Already logged in
     $viewer = Khcn_Api::_()->getViewer();
     if ($viewer && $viewer->getIdentity()) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('Bạn đã đăng nhập.');
         $this->_helper->redirector->gotoRoute(array(), 'default', true);
         return;
     }
     // Make form
     $this->view->form = $form = new Default_Form_Login();
     $form->setAction($this->view->url(array('return_url' => null)));
     $form->populate(array('return_url' => $this->_getParam('return_url')));
     // Not a post
     if (!$this->getRequest()->isPost()) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('No action taken');
         return;
     }
     // Form not valid
     if (!$form->isValid($this->getRequest()->getPost())) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('Invalid data');
         return;
     }
     // Check login creds
     extract($form->getValues());
     // $Username, $Password, $Remember
     $userTable = Khcn_Api::_()->getItemTable('default_nguoi_dung');
     $userSelect = $userTable->select()->where('ten_dang_nhap = ?', $Username);
     // If post exists
     $user = $userTable->fetchRow($userSelect);
     // Get ip address
     $db = Khcn_Db_Table::getDefaultAdapter();
     // Check if user exists
     if (empty($user)) {
         $this->view->status = false;
         $this->view->error = Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.');
         $form->addError(Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.'));
         return;
     }
     // Check if user is verified and enabled
     if (!$user->enabled) {
         if (!$user->verified) {
             $this->view->status = false;
             $translate = Zend_Registry::get('Zend_Translate');
             $error = $translate->translate('Vui lòng kích hoạt tài khoản thông qua email.');
             $form->getDecorator('errors')->setOption('escape', false);
             $form->addError($error);
             return;
         } else {
             if (!$user->approved) {
                 $this->view->status = false;
                 $translate = Zend_Registry::get('Zend_Translate');
                 $error = $translate->translate('Tài khoản của bạn cần được kích hoạt bởi admin.');
                 $form->getDecorator('errors')->setOption('escape', false);
                 $form->addError($error);
                 return;
             }
         }
         // Should be handled by hooks or payment
         //return;
     }
     // Version 3 Import compatibility
     if (empty($user->mat_khau)) {
         $form->addError('Mật khẩu không hợp lệ. Vui lòng reset lại mật khẩu.');
         return;
     } else {
         $authResult = Khcn_Api::_()->authenticate($Username, $Password);
         $authCode = $authResult->getCode();
         Khcn_Api::_()->setViewer();
         if ($authCode != Zend_Auth_Result::SUCCESS) {
             $this->view->status = false;
             $this->view->error = Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.');
             $form->addError(Zend_Registry::get('Zend_Translate')->_('Tên đăng nhập hoặc mật khẩu không đúng.'));
             return;
         }
     }
     // -- Success! --
     // Remember
     if (!empty($Remember)) {
         $lifetime = 1209600;
         // Two weeks
         Zend_Session::getSaveHandler()->setLifetime($lifetime, true);
         Zend_Session::rememberMe($lifetime);
     }
     // Test activity @todo remove
     $viewer = Khcn_Api::_()->getViewer();
     if ($viewer && $viewer->getIdentity()) {
         $viewer->lan_dang_nhap_cuoi = date("Y-m-d H:i:s");
         $viewer->save();
     }
     // Assign sid to view for json context
     $this->view->status = true;
     $this->view->message = Zend_Registry::get('Zend_Translate')->_('Đăng nhập thành công');
     $this->view->sid = Zend_Session::getId();
     $this->view->sname = Zend_Session::getOptions('name');
     // Do redirection only if normal context
     // Redirect by form
     $uri = $form->getValue('return_url');
     if ($uri) {
         if (substr($uri, 0, 3) == '64-') {
             $uri = base64_decode(substr($uri, 3));
         }
         return $this->_redirect($uri, array('prependBase' => false));
     }
     // Redirect by session
     $session = new Zend_Session_Namespace('Redirect');
     if (isset($session->uri)) {
         $uri = $session->uri;
         $opts = $session->options;
         $session->unsetAll();
         return $this->_redirect($uri, $opts);
     } else {
         if (isset($session->route)) {
             $session->unsetAll();
             return $this->_helper->redirector->gotoRoute($session->params, $session->route, $session->reset);
         }
     }
     // Just redirect to home
     return $this->_helper->redirector->gotoRoute(array(), null, true);
 }