diff options
Diffstat (limited to 'includes/pear/Auth/Anonymous.php')
| -rw-r--r-- | includes/pear/Auth/Anonymous.php | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/includes/pear/Auth/Anonymous.php b/includes/pear/Auth/Anonymous.php new file mode 100644 index 0000000..ec29bd6 --- /dev/null +++ b/includes/pear/Auth/Anonymous.php @@ -0,0 +1,138 @@ +<?php +/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */ + +/** + * Anonymous authentication support + * + * 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 Yavor Shahpasov <yavo@netsmart.com.cy> + * @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: Anonymous.php 289651 2009-10-15 04:39:07Z aashley $ + * @link http://pear.php.net/package/Auth + * @since File available since Release 1.3.0 + */ + +/** + * Include Auth package + */ +require_once 'Auth.php'; + +/** + * Anonymous Authentication + * + * This class provides anonymous authentication if username and password + * were not supplied + * + * @category Authentication + * @package Auth + * @author Yavor Shahpasov <yavo@netsmart.com.cy> + * @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: 289651 $ + * @link http://pear.php.net/package/Auth + * @since Class available since Release 1.3.0 + */ +class Auth_Anonymous extends Auth +{ + + // {{{ properties + + /** + * Whether to allow anonymous authentication + * + * @var boolean + */ + var $allow_anonymous = true; + + /** + * Username to use for anonymous user + * + * @var string + */ + var $anonymous_username = 'anonymous'; + + // }}} + // {{{ Auth_Anonymous() [constructor] + + /** + * Pass all parameters to Parent Auth class + * + * Set up the storage driver. + * + * @param string Type of the storage driver + * @param mixed Additional options for the storage driver + * (example: if you are using DB as the storage + * driver, you have to pass the dsn string here) + * + * @param string Name of the function that creates the login form + * @param boolean Should the login form be displayed if necessary? + * @return void + * @see Auth::Auth() + */ + function Auth_Anonymous($storageDriver, $options = '', $loginFunction = '', $showLogin = true) { + parent::Auth($storageDriver, $options, $loginFunction, $showLogin); + } + + // }}} + // {{{ login() + + /** + * Login function + * + * If no username & password is passed then login as the username + * provided in $this->anonymous_username else call standard login() + * function. + * + * @return void + * @access private + * @see Auth::login() + */ + function login() { + if ( $this->allow_anonymous + && empty($this->username) + && empty($this->password) ) { + $this->setAuth($this->anonymous_username); + if (is_callable($this->loginCallback)) { + call_user_func_array($this->loginCallback, array($this->username, $this) ); + } + } else { + // Call normal login system + parent::login(); + } + } + + // }}} + // {{{ forceLogin() + + /** + * Force the user to login + * + * Calling this function forces the user to provide a real username and + * password before continuing. + * + * @return void + */ + function forceLogin() { + $this->allow_anonymous = false; + if( !empty($this->session['username']) && $this->session['username'] == $this->anonymous_username ) { + $this->logout(); + } + } + + // }}} + +} + +?> |
