Guest User

Untitled

a guest
Jan 23rd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.11 KB | None | 0 0
  1. <?php
  2.  
  3. class Default_Model_UserAuth {
  4.    
  5.     public function isAuthorised($request) {
  6.         $form = new Default_Form_Login();
  7.        
  8.         if ($request->isPost()) {
  9.             if ($form->isValid($request->getPost())) {
  10.                 $values = $form->getValues();
  11.                 $salt = $this->getSalt($values['username']);
  12.                 $encryptedPassword = $this->getEncryptedPassword($values['password'], $salt);
  13.                
  14.                 if ($this->authenticate($values['username'], $encryptedPassword)) {
  15.                     return true;
  16.                 }
  17.             }
  18.         }
  19.         return false;
  20.     }
  21.      
  22.     public function authenticate($username, $encryptedPassword) {
  23.         // Get our authentication adapter and check credentials
  24.         $adapter = $this->getAuthAdapter();
  25.         $adapter->setIdentity($username);
  26.         $adapter->setCredential($encryptedPassword);
  27.  
  28.         $auth = Zend_Auth::getInstance();
  29.         $result = $auth->authenticate($adapter);
  30.         if ($result->isValid()) {
  31.             $user = $adapter->getResultRowObject();
  32.             $auth->getStorage()->write($user);
  33.             return true;
  34.         }
  35.         return false;
  36.     }
  37.  
  38.     public function getAuthAdapter() {
  39.         $dbAdapter = Zend_Db_Table::getDefaultAdapter();
  40.        
  41.         $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
  42.         $authAdapter->setTableName('users')
  43.             ->setIdentityColumn('username')
  44.             ->setCredentialColumn('password');
  45.  
  46.         return $authAdapter;
  47.     }
  48.        
  49.     public function getEncryptedPassword($password, $salt) {
  50.         return sha1($password . $salt);
  51.     }
  52.  
  53.     public function getSalt($username) {
  54.         $dbAdapter = Zend_Db_Table::getDefaultAdapter();
  55.        
  56.         $result = $dbAdapter->fetchRow($dbAdapter
  57.                                         ->select()
  58.                                         ->from('users', 'salt')
  59.                                         ->where('username = ?', $username)
  60.                                         );
  61.        
  62.         return $result['salt'];
  63.     }
  64.    
  65. }
Add Comment
Please, Sign In to add comment