116 Zeilen
		
	
	
	
		
			2,6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			116 Zeilen
		
	
	
	
		
			2,6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * This file is part of MySQLDumper released under the GNU/GPL 2 license
 | |
|  * http://www.mysqldumper.net
 | |
|  *
 | |
|  * @package         MySQLDumper
 | |
|  * @subpackage      Auth_adapter
 | |
|  * @version         SVN: $Rev$
 | |
|  * @author          $Author$
 | |
|  */
 | |
| /**
 | |
|  * Adapter to use Zend_Auth with INI files.
 | |
|  *
 | |
|  * @package         MySQLDumper
 | |
|  * @subpackage      Auth_adapter
 | |
|  */
 | |
| class Msd_Auth_Adapter_Ini implements Zend_Auth_Adapter_Interface
 | |
| {
 | |
|     /**
 | |
|      * User database
 | |
|      *
 | |
|      * @var array
 | |
|      */
 | |
|     private $_users = null;
 | |
| 
 | |
|     /**
 | |
|      * Username for authentication.
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     private $_username = null;
 | |
| 
 | |
|     /**
 | |
|      * Password for authentication.
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     private $_password = null;
 | |
| 
 | |
|     /**
 | |
|      * Class constructor
 | |
|      *
 | |
|      * @param string $iniFilename Filename for registered users
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function __construct($iniFilename)
 | |
|     {
 | |
|         if (!file_exists($iniFilename)) {
 | |
|             throw new Msd_Exception(
 | |
|                 'INI file with authentication information doesn\'t exists!'
 | |
|             );
 | |
|         }
 | |
|         $this->_users = parse_ini_file($iniFilename, true);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * set the username, which is used for authentication.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function setUsername($username)
 | |
|     {
 | |
|         $this->_username = (string) $username;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set the password, which is used for authentication.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function setPassword($password)
 | |
|     {
 | |
|         $this->_password = (string) $password;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Authenticate with the given credentials.
 | |
|      *
 | |
|      * @return Zend_Auth_Result
 | |
|      */
 | |
|     public function authenticate()
 | |
|     {
 | |
|         if ($this->_username == null || $this->_password == null) {
 | |
|             throw new Msd_Exception(
 | |
|                 'You must set the username and password first!'
 | |
|             );
 | |
|         }
 | |
| 
 | |
|         $authResult = false;
 | |
|         foreach ($this->_users as $userId => $user) {
 | |
|             if (
 | |
|                 $this->_username == $user['name'] &&
 | |
|                 md5($this->_password) == $user['pass']
 | |
|             ) {
 | |
|                 $authResult = array(
 | |
|                     'id' => $userId,
 | |
|                     'name' => $user['name'],
 | |
|                 );
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         if ($authResult === false) {
 | |
|             return new Zend_Auth_Result(
 | |
|                 Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID,
 | |
|                 array(),
 | |
|                 array('L_LOGIN_INVALID_USER')
 | |
|             );
 | |
|         }
 | |
| 
 | |
|         return new Zend_Auth_Result(
 | |
|             Zend_Auth_Result::SUCCESS,
 | |
|             $authResult
 | |
|         );
 | |
|     }
 | |
| }
 |