* @author Adam Ashley * @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.2 2007-11-19 15:11:00 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 * @author Adam Ashley * @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.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 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(); } } // }}} } ?>