X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FAuthPlugin.php;h=87ac8adb7506844f28955ae7db89fcd2008a0cea;hb=7fa78fefa902e7e8f30267d98fcd99d25b473542;hp=66cabff26b1d7f1d26e73835f421b71df175a685;hpb=a15c419b3d130248f2556b9d00643ba9666a4189;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/AuthPlugin.php b/includes/AuthPlugin.php index 66cabff26b..87ac8adb75 100644 --- a/includes/AuthPlugin.php +++ b/includes/AuthPlugin.php @@ -28,10 +28,6 @@ * accounts authenticate externally, or use it only as a fallback; also * you can transparently create internal wiki accounts the first time * someone logs in who can be authenticated externally. - * - * This interface is new, and might change a bit before 1.4.0 final is - * done... - * */ class AuthPlugin { /** @@ -42,9 +38,8 @@ class AuthPlugin { * * @param $username String: username. * @return bool - * @public */ - function userExists( $username ) { + public function userExists( $username ) { # Override this! return false; } @@ -58,9 +53,8 @@ class AuthPlugin { * @param $username String: username. * @param $password String: user password. * @return bool - * @public */ - function authenticate( $username, $password ) { + public function authenticate( $username, $password ) { # Override this! return false; } @@ -69,9 +63,9 @@ class AuthPlugin { * Modify options in the login template. * * @param $template UserLoginTemplate object. - * @public + * @param $type String 'signup' or 'login'. */ - function modifyUITemplate( &$template ) { + public function modifyUITemplate( &$template, &$type ) { # Override this! $template->set( 'usedomain', false ); } @@ -80,9 +74,8 @@ class AuthPlugin { * Set the domain this plugin is supposed to use when authenticating. * * @param $domain String: authentication domain. - * @public */ - function setDomain( $domain ) { + public function setDomain( $domain ) { $this->domain = $domain; } @@ -91,9 +84,8 @@ class AuthPlugin { * * @param $domain String: authentication domain. * @return bool - * @public */ - function validDomain( $domain ) { + public function validDomain( $domain ) { # Override this! return true; } @@ -106,10 +98,9 @@ class AuthPlugin { * The User object is passed by reference so it can be modified; don't * forget the & on your function declaration. * - * @param User $user - * @public + * @param $user User object */ - function updateUser( &$user ) { + public function updateUser( &$user ) { # Override this and do something return true; } @@ -126,19 +117,37 @@ class AuthPlugin { * * This is just a question, and shouldn't perform any actions. * - * @return bool - * @public + * @return Boolean */ - function autoCreate() { + public function autoCreate() { return false; } + /** + * Allow a property change? Properties are the same as preferences + * and use the same keys. 'Realname' 'Emailaddress' and 'Nickname' + * all reference this. + * + * @return Boolean + */ + public function allowPropChange( $prop = '' ) { + if( $prop == 'realname' && is_callable( array( $this, 'allowRealNameChange' ) ) ) { + return $this->allowRealNameChange(); + } elseif( $prop == 'emailaddress' && is_callable( array( $this, 'allowEmailChange' ) ) ) { + return $this->allowEmailChange(); + } elseif( $prop == 'nickname' && is_callable( array( $this, 'allowNickChange' ) ) ) { + return $this->allowNickChange(); + } else { + return true; + } + } + /** * Can users change their passwords? * * @return bool */ - function allowPasswordChange() { + public function allowPasswordChange() { return true; } @@ -153,9 +162,8 @@ class AuthPlugin { * @param $user User object. * @param $password String: password. * @return bool - * @public */ - function setPassword( $user, $password ) { + public function setPassword( $user, $password ) { return true; } @@ -164,20 +172,18 @@ class AuthPlugin { * Return true if successful. * * @param $user User object. - * @return bool - * @public + * @return Boolean */ - function updateExternalDB( $user ) { + public function updateExternalDB( $user ) { return true; } /** * Check to see if external accounts can be created. * Return true if external accounts can be created. - * @return bool - * @public + * @return Boolean */ - function canCreateAccounts() { + public function canCreateAccounts() { return false; } @@ -185,14 +191,13 @@ class AuthPlugin { * Add a user to the external authentication database. * Return true if successful. * - * @param User $user - only the name should be assumed valid at this point - * @param string $password - * @param string $email - * @param string $realname - * @return bool - * @public + * @param $user User: only the name should be assumed valid at this point + * @param $password String + * @param $email String + * @param $realname String + * @return Boolean */ - function addUser( $user, $password, $email='', $realname='' ) { + public function addUser( $user, $password, $email='', $realname='' ) { return true; } @@ -203,10 +208,20 @@ class AuthPlugin { * * This is just a question, and shouldn't perform any actions. * - * @return bool - * @public + * @return Boolean + */ + public function strict() { + return false; + } + + /** + * Check if a user should authenticate locally if the global authentication fails. + * If either this or strict() returns true, local authentication is not used. + * + * @param $username String: username. + * @return Boolean */ - function strict() { + public function strictUserAuth( $username ) { return false; } @@ -219,9 +234,9 @@ class AuthPlugin { * forget the & on your function declaration. * * @param $user User object. - * @public + * @param $autocreate Boolean: True if user is being autocreated on login */ - function initUser( &$user ) { + public function initUser( &$user, $autocreate=false ) { # Override this to do something. } @@ -229,9 +244,42 @@ class AuthPlugin { * If you want to munge the case of an account name before the final * check, now is your chance. */ - function getCanonicalName( $username ) { + public function getCanonicalName( $username ) { return $username; } + + /** + * Get an instance of a User object + * + * @param $user User + */ + public function getUserInstance( User &$user ) { + return new AuthPluginUser( $user ); + } } - +class AuthPluginUser { + function __construct( $user ) { + # Override this! + } + + public function getId() { + # Override this! + return -1; + } + + public function isLocked() { + # Override this! + return false; + } + + public function isHidden() { + # Override this! + return false; + } + + public function resetAuthToken() { + # Override this! + return true; + } +}