Beispiel #1
0
 /**
  * a fast way to signin in the user profile
  */
 public function fastloginAction()
 {
     $request = $this->getRequest();
     $NS = new Zend_Session_Namespace('Default');
     $registry = Shineisp_Registry::getInstance();
     $translator = $registry->Zend_Translate;
     $secretKey = $request->getParam('id');
     if (!empty($secretKey)) {
         $sha1 = Shineisp_Commons_Hasher::unhash_string($secretKey);
         // Trying to get the user in the database
         $retval = Customers::getCustomerbyEmailSha1($sha1);
         if (count($retval) == 0) {
             $result = new Zend_Auth_Result(Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID, $secretKey);
             $NS->customer = null;
             $this->view->message = $translator->translate('Email Address or Password is incorrect.');
             return $this->_helper->viewRenderer('generic');
         } else {
             $NS->customer = $retval[0];
             // Set the default control panel language
             if (!empty($retval[0]['language'])) {
                 $lang = $retval[0]['language'];
             }
         }
     }
     // If the software detects that there is a redirect to a specific page then ...
     if (!empty($NS->goto) && is_array($NS->goto)) {
         $this->_helper->redirector($NS->goto['action'], $NS->goto['controller'], $NS->goto['module'], $NS->goto['options']);
     }
     if (!empty($lang)) {
         $this->_helper->redirector('index', 'dashboard', 'default', array('lang' => $lang));
         // back to login page
     } else {
         $this->_helper->redirector('index', 'dashboard', 'default');
     }
 }