Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?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,v 1.1.4.2 2007-11-19 14:54:06 jp_milcent Exp $* @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: 1.5.4 File: $Revision: 1.1.4.2 $* @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 neccessary?* @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 systemparent::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();}}// }}}}?>