source: branches/comu/html/test/kakinaka/pear/Auth/Auth/Anonymous.php @ 2

Revision 2, 3.9 KB checked in by root, 17 years ago (diff)

new import

Line 
1<?php
2/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
3
4/**
5 * Anonymous authentication support
6 *
7 * PHP versions 4 and 5
8 *
9 * LICENSE: This source file is subject to version 3.01 of the PHP license
10 * that is available through the world-wide-web at the following URI:
11 * http://www.php.net/license/3_01.txt.  If you did not receive a copy of
12 * the PHP License and are unable to obtain it through the web, please
13 * send a note to license@php.net so we can mail you a copy immediately.
14 *
15 * @category   Authentication
16 * @package    Auth
17 * @author     Yavor Shahpasov <yavo@netsmart.com.cy>
18 * @author     Adam Ashley <aashley@php.net>
19 * @copyright  2001-2006 The PHP Group
20 * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
21 * @version    CVS: $Id: Anonymous.php 8715 2006-12-01 05:10:46Z kakinaka $
22 * @link       http://pear.php.net/package/Auth
23 * @since      File available since Release 1.3.0
24 */
25
26/**
27 * Include Auth package
28 */
29require_once 'Auth.php';
30
31/**
32 * Anonymous Authentication
33 *
34 * This class provides anonymous authentication if username and password
35 * were not supplied
36 *
37 * @category   Authentication
38 * @package    Auth
39 * @author     Yavor Shahpasov <yavo@netsmart.com.cy>
40 * @author     Adam Ashley <aashley@php.net>
41 * @copyright  2001-2006 The PHP Group
42 * @license    http://www.php.net/license/3_01.txt  PHP License 3.01
43 * @version    Release: 1.4.2  File: $Revision: 8715 $
44 * @link       http://pear.php.net/package/Auth
45 * @since      Class available since Release 1.3.0
46 */
47class Auth_Anonymous extends Auth
48{
49
50    // {{{ properties
51
52    /**
53     * Whether to allow anonymous authentication
54     *
55     * @var boolean
56     */
57    var $allow_anonymous = true;
58
59    /**
60     * Username to use for anonymous user
61     *
62     * @var string
63     */
64    var $anonymous_username = 'anonymous';
65
66    // }}}
67    // {{{ Auth_Anonymous() [constructor]
68   
69    /**
70     * Pass all parameters to Parent Auth class
71     *
72     * Set up the storage driver.
73     *
74     * @param string    Type of the storage driver
75     * @param mixed     Additional options for the storage driver
76     *                  (example: if you are using DB as the storage
77     *                   driver, you have to pass the dsn string here)
78     *
79     * @param string    Name of the function that creates the login form
80     * @param boolean   Should the login form be displayed if neccessary?
81     * @return void
82     * @see Auth::Auth()
83     */
84    function Auth_Anonymous($storageDriver, $options = '', $loginFunction = '', $showLogin = true) {
85        parent::Auth($storageDriver, $options, $loginFunction, $showLogin);
86    }
87
88    // }}}
89    // {{{ login()
90   
91    /**
92     * Login function
93     *
94     * If no username & password is passed then login as the username
95     * provided in $this->anonymous_username else call standard login()
96     * function.
97     *
98     * @return void
99     * @access private
100     * @see Auth::login()
101     */
102    function login() {
103        if (   $this->allow_anonymous
104            && empty($this->username)
105            && empty($this->password) ) {
106            $this->setAuth($this->anonymous_username);
107            if (is_callable($this->loginCallback)) {
108                call_user_func_array($this->loginCallback, array($this->username, $this) );
109            }
110        } else {
111            // Call normal login system
112            parent::login();
113        }
114    }
115
116    // }}}
117    // {{{ forceLogin()
118   
119    /**
120     * Force the user to login
121     *
122     * Calling this function forces the user to provide a real username and
123     * password before continuing.
124     *
125     * @return void
126     */
127    function forceLogin() {
128        $this->allow_anonymous = false;
129        if( !empty($this->session['username']) && $this->session['username'] == $this->anonymous_username ) {
130            $this->logout();
131        }
132    }
133
134    // }}}
135
136}
137
138?>
Note: See TracBrowser for help on using the repository browser.