diff options
Diffstat (limited to 'includes/pear/Auth/Container/Multiple.php')
| -rw-r--r-- | includes/pear/Auth/Container/Multiple.php | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/includes/pear/Auth/Container/Multiple.php b/includes/pear/Auth/Container/Multiple.php deleted file mode 100644 index 08f131d..0000000 --- a/includes/pear/Auth/Container/Multiple.php +++ /dev/null @@ -1,188 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */ - -/** - * Storage driver for using multiple storage drivers in a fall through fashion - * - * 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 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: Multiple.php 289653 2009-10-15 04:50:43Z aashley $ - * @since File available since Release 1.5.0 - */ - -/** - * Include Auth_Container base class - */ -require_once "Auth/Container.php"; -/** - * Include PEAR package for error handling - */ -require_once "PEAR.php"; - -/** - * Storage driver for using multiple storage drivers in a fall through fashion - * - * This storage driver provides a mechanism for working through multiple - * storage drivers until either one allows successful login or the list is - * exhausted. - * - * This container takes an array of options of the following form: - * - * array( - * array( - * 'type' => <standard container type name>, - * 'options' => <normal array of options for container>, - * ), - * ); - * - * Full example: - * - * $options = array( - * array( - * 'type' => 'DB', - * 'options' => array( - * 'dsn' => "mysql://user:password@localhost/database", - * ), - * ), - * array( - * 'type' => 'Array', - * 'options' => array( - * 'cryptType' => 'md5', - * 'users' => array( - * 'admin' => md5('password'), - * ), - * ), - * ), - * ); - * - * $auth = new Auth('Multiple', $options); - * - * @category Authentication - * @package Auth - * @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: 289653 $ - * @since File available since Release 1.5.0 - */ - -class Auth_Container_Multiple extends Auth_Container { - - // {{{ properties - - /** - * The options for each container - * - * @var array $options - */ - var $options = array(); - - /** - * The instanciated containers - * - * @var array $containers - */ - var $containers = array(); - - // }}} - // {{{ Auth_Container_Multiple() - - /** - * Constructor for Array Container - * - * @param array $data Options for the container - * @return void - */ - function Auth_Container_Multiple($options) - { - if (!is_array($options)) { - PEAR::raiseError('The options for Auth_Container_Multiple must be an array'); - } - if (count($options) < 1) { - PEAR::raiseError('You must define at least one sub container to use in Auth_Container_Multiple'); - } - foreach ($options as $option) { - if (!isset($option['type'])) { - PEAR::raiseError('No type defined for sub container'); - } - } - $this->options = $options; - } - - // }}} - // {{{ 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_Multiple::fetchData() called.', AUTH_LOG_DEBUG); - - foreach ($this->options as $key => $options) { - - $this->log('Using Container '.$key.' of type '.$options['type'].'.', AUTH_LOG_DEBUG); - - if (isset($this->containers[$key]) && is_a($this->containers[$key], 'Auth_Container')) { - - $container = &$this->containers[$key]; - - } else { - - $this->containers[$key] = &$this->_auth_obj->_factory($options['type'], $options['options']); - $this->containers[$key]->_auth_obj = &$this->_auth_obj; - $container = &$this->containers[$key]; - - } - - $result = $container->fetchData($user, $pass); - - if (PEAR::isError($result)) { - - $this->log('Container '.$key.': '.$result->getMessage(), AUTH_LOG_DEBUG); - return $result; - - } elseif ($result == true) { - - $this->log('Container '.$key.': Authentication successful.', AUTH_LOG_DEBUG); - return true; - - } else { - - $this->log('Container '.$key.': Authentication failed.', AUTH_LOG_DEBUG); - - } - - } - - $this->log('Auth_Container_Multiple: All containers rejected user credentials.', AUTH_LOG_DEBUG); - - return false; - - } - - // }}} - -} - -?> |
