示例#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');
     }
 }
示例#2
0
 /**
  * Check the user credencials by the secret key
  * @param string $email
  */
 public static function checkIspCredencialsBySecretKey($secretKey)
 {
     // Remove salt from hashed string
     $string = Shineisp_Commons_Hasher::unhash_string($secretKey);
     // Check if the user exists!
     $record = Doctrine_Query::create()->select('u.*, r.*, p.*, s.*')->from('AdminUser u')->leftJoin('u.Isp i')->leftJoin('u.AdminRoles r')->leftJoin('r.AdminPermissions p')->leftJoin('p.AdminResources s')->where('SHA1(i.email) = ?', $string)->limit(1)->execute(array(), Doctrine::HYDRATE_ARRAY);
     if ($record) {
         return !empty($record[0]) ? $record[0] : FALSE;
     } else {
         return NULL;
     }
 }