public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     if (!isset($_SERVER['HTTP_USER_AGENT']) || isset($_SERVER['HTTP_USER_AGENT']) && false === strpos($_SERVER['HTTP_USER_AGENT'], 'sanmax-crawler-bot')) {
         return;
     }
     $config = array('accept_schemes' => 'basic', 'realm' => 'crawler', 'digest_domains' => '/', 'nonce_timeout' => 3600);
     $adapter = new Zend_Auth_Adapter_Http($config);
     $basicResolver = new Zend_Auth_Adapter_Http_Resolver_File(APPLICATION_PATH . '/var/bot-basic');
     $adapter->setBasicResolver($basicResolver);
     $response = Zend_Controller_Front::getInstance()->getResponse();
     $adapter->setRequest($request);
     $adapter->setResponse($response);
     $auth = Zend_Auth::getInstance();
     $result = $auth->authenticate($adapter);
     if (!$result->isValid()) {
         $response->sendHeaders();
         exit;
     }
     $user = new SxCms_User();
     $gMapper = new SxCms_Group_DataMapper();
     $groups = $gMapper->getAll();
     foreach ($groups as $group) {
         $user->addGroup($group);
     }
     $storage = $auth->getStorage();
     $storage->write($user);
     $front = Zend_Controller_Front::getInstance();
     $front->setParam('isBot', true);
     $mvc = Zend_Layout::getMvcInstance();
     $view = $mvc->getView();
     $view->isBot = true;
     return;
 }
 /**
  * Validate user's data
  *
  * @return boolean
  */
 public function validate(SxCms_User $user)
 {
     $this->_user = $user;
     $this->_validateEmail();
     if ($user->getPassword()) {
         $this->_validatePassword();
         $this->_validateOldPassword();
     }
     $this->_validateFirstName();
     $this->_validateLastName();
     $msgr = Sanmax_MessageStack::getInstance('SxCms_User');
     if (!$msgr->getNamespaceMessages()) {
         return true;
     }
     return false;
 }
 /**
  * Validates the last name
  *
  * @return boolean
  */
 protected function _validateLastName()
 {
     $validator = new Zend_Validate_StringLength(2, 255);
     if ($validator->isValid($this->_user->getLastName())) {
         return true;
     }
     $msg = Sanmax_MessageStack::getInstance('SxCms_User');
     $msg->addMessage('last_name', $validator->getMessages(), 'common');
     return false;
 }
Exemple #4
0
 /**
  * Delete a user on the datasource
  * 
  * @param SxCms_User $user
  * @return int
  */
 public function delete(SxCms_User $user)
 {
     $db = Zend_Registry::get('db');
     return $db->delete('User', 'user_id = ' . $user->getId());
 }
 public function loginAction()
 {
     $user = new SxCms_User();
     $config = Zend_Registry::get('config');
     $this->view->sytemadminlng = $config->systemadmin->language->toArray();
     if ($this->getRequest()->isPost()) {
         $user->setEmail($this->_getParam('username'))->setPassword($this->_getParam('password'));
         $validator = new SxCms_User_LoginValidator();
         if ($validator->validate($user) && $user->login()) {
             $system = new Zend_Session_Namespace('System');
             $system->lng = $config->system->defaults->language;
             $systemAdmin = new Zend_Session_Namespace('SystemAdmin');
             if (array_key_exists($this->_getParam('systemAdminLng', $config->systemadmin->defaults->language), $config->systemadmin->language->toArray())) {
                 $systemAdmin->lng = $this->_getParam('systemAdminLng', $config->systemadmin->defaults->language);
             } else {
                 $systemAdmin->lng = $config->systemadmin->defaults->language;
             }
             $_SESSION['isLoggedIn'] = true;
             $this->_helper->redirector->gotoSimple('index', 'page');
         }
     }
     $this->view->user = $user;
     $this->view->messages = Sanmax_MessageStack::getInstance('SxCms_User');
     if (!$this->getRequest()->getParam('redirect')) {
         $this->_helper->layout->setLayout('login');
     }
 }