Viewing file: Array.php (4.49 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
/** * Storage driver for use against a PHP Array * * PHP versions 4 and 5 * * LICENSE: This source file is subject to version 3.01 of the PHP license * that is available through the world-wide-web at the following URI: * http://www.php.net/license/3_01.txt. If you did not receive a copy of * the PHP License and are unable to obtain it through the web, please * send a note to license@php.net so we can mail you a copy immediately. * * @category Authentication * @package Auth * @author georg_1 at have2 dot com * @author Adam Ashley <aashley@php.net> * @copyright 2001-2006 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License 3.01 * @version CVS: $Id: Array.php 237449 2007-06-12 03:11:27Z aashley $ * @since File available since Release 1.4.0 */
/** * Include Auth_Container base class */ require_once "Auth/Container.php"; /** * Include PEAR package for error handling */ require_once "PEAR.php";
/** * Storage driver for fetching authentication data from a PHP Array * * This container takes two options when configuring: * * cryptType: The crypt used to store the password. Currently recognised * are: none, md5 and crypt. default: none * users: A named array of usernames and passwords. * Ex: * array( * 'guest' => '084e0343a0486ff05530df6c705c8bb4', // password guest * 'georg' => 'fc77dba827fcc88e0243404572c51325' // password georg * ) * * Usage Example: * <?php * $AuthOptions = array( * 'users' => array( * 'guest' => '084e0343a0486ff05530df6c705c8bb4', // password guest * 'georg' => 'fc77dba827fcc88e0243404572c51325' // password georg * ), * 'cryptType'=>'md5', * ); * * $auth = new Auth("Array", $AuthOptions); * ?> * * @category Authentication * @package Auth * @author georg_1 at have2 dot com * @author Adam Ashley <aashley@php.net> * @copyright 2001-2006 The PHP Group * @license http://www.php.net/license/3_01.txt PHP License 3.01 * @version Release: @package_version@ File: $Revision: 237449 $ * @since File available since Release 1.4.0 */
class Auth_Container_Array extends Auth_Container {
// {{{ properties
/** * The users and their password to authenticate against * * @var array $users */ var $users;
/** * The cryptType used on the passwords * * @var string $cryptType */ var $cryptType = 'none';
// }}} // {{{ Auth_Container_Array()
/** * Constructor for Array Container * * @param array $data Options for the container * @return void */ function Auth_Container_Array($data) { if (!is_array($data)) { PEAR::raiseError('The options for Auth_Container_Array must be an array'); } if (isset($data['users']) && is_array($data['users'])) { $this->users = $data['users']; } else { $this->users = array(); PEAR::raiseError('Auth_Container_Array: no user data found in options array'); } if (isset($data['cryptType'])) { $this->cryptType = $data['cryptType']; } }
// }}} // {{{ fetchData()
/** * Get user information from array * * This function uses the given username to fetch the corresponding * login data from the array. If an account that matches the passed * username and password is found, the function returns true. * Otherwise it returns false. * * @param string Username * @param string Password * @return boolean|PEAR_Error Error object or boolean */ function fetchData($user, $pass) { $this->log('Auth_Container_Array::fetchData() called.', AUTH_LOG_DEBUG); if ( isset($this->users[$user]) && $this->verifyPassword($pass, $this->users[$user], $this->cryptType)) { return true; } return false; }
// }}} // {{{ listUsers()
/** * Returns a list of users available within the container * * @return array */ function listUsers() { $this->log('Auth_Container_Array::listUsers() called.', AUTH_LOG_DEBUG); $ret = array(); foreach ($this->users as $username => $password) { $ret[]['username'] = $username; } return $ret; }
// }}}
}
?>
|