X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2FAuthPlugin.php;h=2e42439c9f8604eb5bd583dde25db9a1debf849e;hb=d6cf07fac52fc9c4c1ccdd1d6b2f730993031c59;hp=97cb11f1c07821fc0a92140c5df5b36bfe9c804e;hpb=d3f901b0290b84a432d73d8d72aeee4025e15a0d;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/AuthPlugin.php b/includes/AuthPlugin.php index 97cb11f1c0..2e42439c9f 100644 --- a/includes/AuthPlugin.php +++ b/includes/AuthPlugin.php @@ -1,23 +1,27 @@ + * http://www.mediawiki.org/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * http://www.gnu.org/copyleft/gpl.html + * + * @file */ -# Copyright (C) 2004 Brion Vibber -# http://www.mediawiki.org/ -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# http://www.gnu.org/copyleft/gpl.html /** * Authentication plugin interface. Instantiate a subclass of AuthPlugin @@ -30,6 +34,12 @@ * someone logs in who can be authenticated externally. */ class AuthPlugin { + + /** + * @var string + */ + protected $domain; + /** * Check whether there exists a user account with the given name. * The name will be normalized to MediaWiki's requirements, so @@ -62,13 +72,12 @@ class AuthPlugin { /** * Modify options in the login template. * - * @param $sp SpecialUserlogin or SpecialCreateAccount object. - * @param $type String 'signup' or 'login'. Redundant because - * you can just use instanceof to tell the two cases apart. + * @param $template UserLoginTemplate object. + * @param $type String 'signup' or 'login'. Added in 1.16. */ - public function modifyUITemplate( &$sp, $type=null ) { + public function modifyUITemplate( &$template, &$type ) { # Override this! - $sp->mDomains = false; + $template->set( 'usedomain', false ); } /** @@ -80,6 +89,19 @@ class AuthPlugin { $this->domain = $domain; } + /** + * Get the user's domain + * + * @return string + */ + public function getDomain() { + if ( isset( $this->domain ) ) { + return $this->domain; + } else { + return 'invaliddomain'; + } + } + /** * Check to see if the specific domain is a valid domain. * @@ -99,14 +121,14 @@ 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 + * @param $user User object + * @return bool */ public function updateUser( &$user ) { # Override this and do something return true; } - /** * Return true if the wiki should create a new local account automatically * when asked to login a user who doesn't exist locally but does in the @@ -118,7 +140,7 @@ class AuthPlugin { * * This is just a question, and shouldn't perform any actions. * - * @return bool + * @return Boolean */ public function autoCreate() { return false; @@ -129,14 +151,16 @@ class AuthPlugin { * and use the same keys. 'Realname' 'Emailaddress' and 'Nickname' * all reference this. * - * @return bool + * @param $prop string + * + * @return Boolean */ public function allowPropChange( $prop = '' ) { - if( $prop == 'realname' && is_callable( array( $this, 'allowRealNameChange' ) ) ) { + if ( $prop == 'realname' && is_callable( array( $this, 'allowRealNameChange' ) ) ) { return $this->allowRealNameChange(); - } elseif( $prop == 'emailaddress' && is_callable( array( $this, 'allowEmailChange' ) ) ) { + } elseif ( $prop == 'emailaddress' && is_callable( array( $this, 'allowEmailChange' ) ) ) { return $this->allowEmailChange(); - } elseif( $prop == 'nickname' && is_callable( array( $this, 'allowNickChange' ) ) ) { + } elseif ( $prop == 'nickname' && is_callable( array( $this, 'allowNickChange' ) ) ) { return $this->allowNickChange(); } else { return true; @@ -152,6 +176,15 @@ class AuthPlugin { return true; } + /** + * Should MediaWiki store passwords in its local database? + * + * @return bool + */ + public function allowSetLocalPassword() { + return true; + } + /** * Set the given password in the authentication database. * As a special case, the password may be set to null to request @@ -173,7 +206,7 @@ class AuthPlugin { * Return true if successful. * * @param $user User object. - * @return bool + * @return Boolean */ public function updateExternalDB( $user ) { return true; @@ -182,7 +215,7 @@ class AuthPlugin { /** * Check to see if external accounts can be created. * Return true if external accounts can be created. - * @return bool + * @return Boolean */ public function canCreateAccounts() { return false; @@ -192,24 +225,23 @@ 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 + * @param $user User: only the name should be assumed valid at this point + * @param $password String + * @param $email String + * @param $realname String + * @return Boolean */ - public function addUser( $user, $password, $email='', $realname='' ) { + public function addUser( $user, $password, $email = '', $realname = '' ) { return true; } - /** * Return true to prevent logins that don't authenticate here from being * checked against the local database's password fields. * * This is just a question, and shouldn't perform any actions. * - * @return bool + * @return Boolean */ public function strict() { return false; @@ -220,7 +252,7 @@ class AuthPlugin { * If either this or strict() returns true, local authentication is not used. * * @param $username String: username. - * @return bool + * @return Boolean */ public function strictUserAuth( $username ) { return false; @@ -235,51 +267,63 @@ class AuthPlugin { * forget the & on your function declaration. * * @param $user User object. - * @param $autocreate bool True if user is being autocreated on login + * @param $autocreate Boolean: True if user is being autocreated on login */ - public function initUser( &$user, $autocreate=false ) { + public function initUser( &$user, $autocreate = false ) { # Override this to do something. } /** * If you want to munge the case of an account name before the final * check, now is your chance. + * @param $username string + * @return string */ public function getCanonicalName( $username ) { return $username; } - + /** * Get an instance of a User object * * @param $user User - * @public + * + * @return AuthPluginUser */ public function getUserInstance( User &$user ) { return new AuthPluginUser( $user ); } + + /** + * Get a list of domains (in HTMLForm options format) used. + * + * @return array + */ + public function domainList() { + return array(); + } } 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;