Example #1
0
 public function domainLoginForm()
 {
     $form = new Logic_User_Form_Login();
     $form->removeDisplayGroup('action_buttons');
     $form->removeElement('submit');
     return $form->render();
 }
Example #2
0
 public function loginAction()
 {
     $request = $this->getRequest();
     if ($request->isXmlHttpRequest()) {
         $this->_helper->layout()->disableLayout();
         $this->view->block_redirect = '/auth/login/msg/' . $request->getParam('msg', '');
     } else {
         $ip = $this->_helper->currentip();
         $form = new Logic_User_Form_Login();
         $this->view->form = $form;
         $identity = Zend_Auth::getInstance()->getIdentity();
         if (is_null($identity)) {
             $layout = Zend_Layout::getMvcInstance();
             $layout->setLayout('_layouts/login');
         }
         if (null !== ($identity = Zend_Auth::getInstance()->getIdentity())) {
             return $this->_redirect($identity->defaultAction);
         }
         if ($request->getParam('msg', false) == 'blocked') {
             $this->_helper->messenger('error', 'System blocked.');
         }
         if ($request->isPost() and !strstr($_SERVER['SERVER_NAME'], 'szkolenia')) {
             if ($form->isValid($request->getPost())) {
                 $values = $form->getValues();
                 $config = Zend_Registry::get('config');
                 switch ($config['auth']['method']) {
                     case "LDAP":
                     default:
                         $adapter = new Logic_Auth_Adapter_Ldap();
                         break;
                     case "DB":
                         $user = new User();
                         $adapter = new Logic_Auth_Adapter_RemoteUserDbTable($user->getAdapter(), 'user', 'login', 'password', 'MD5(?)');
                         break;
                 }
                 $adapter->setIdentity($values['login'])->setCredential($values['password']);
                 $auth = Zend_Auth::getInstance();
                 $result = $auth->authenticate($adapter);
                 if (!$result->isValid() && $request->getParam('msg', false) != 'blocked') {
                     switch ($result->getCode()) {
                         case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                         case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                             $uzytkownik = new Logic_User();
                             $uzytkownik->failedLogin($values['login'], md5($values['password']));
                             $this->_helper->messenger('error', 'Error while logging in. Specified account doesnt exist or account is inactive.');
                             break;
                         default:
                             $this->_helper->messenger('error', 'Error while logging in.');
                             break;
                     }
                 } else {
                     $storage = $auth->getStorage();
                     $storageRow = $auth->getIdentity();
                     $uzytkownik = new Logic_User();
                     $uzytkownik->login($values['login'], md5($values['password']));
                     $uriSessionCheck = new Zend_Session_Namespace('prevUri');
                     if (isset($uriSessionCheck->uri) && $uriSessionCheck->uri != '/' && $uriSessionCheck->uri != '') {
                         $action = $uriSessionCheck->uri;
                         Zend_Session::namespaceUnset('prevUri');
                     } else {
                         $action = $uzytkownik->getDefaultAction();
                         $action = $action ? $action : '/';
                     }
                     $userProfiles = $uzytkownik->getProfiles(Zend_Auth::getInstance()->getIdentity()->id);
                     $userProfile = $userProfiles->current();
                     $action = $userProfile->landing;
                     try {
                         Logic_Client::getInstance();
                     } catch (Exception $exc) {
                         $this->_helper->messenger('info', 'Brak ustawionego Klienta. Niektóre funkcjonalności nie będą dostępne.');
                     }
                     $storageRow->defaultAction = $action;
                     $storage->write($storageRow);
                     Zend_Session::setOptions(array('remember_me_seconds' => 7200));
                     return $this->_redirect($action);
                 }
             }
         }
     }
 }