From 5e326c34b5fc2c823bf08a8c3e5068e22df8f4f8 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Sun, 5 Oct 2008 02:45:12 +0000 Subject: [PATCH] Partial revert of r41527. Do this in a cleaner way. --- includes/AuthPlugin.php | 71 ++++++++++++++++++++++------------------- includes/AutoLoader.php | 1 + includes/User.php | 25 ++++----------- 3 files changed, 45 insertions(+), 52 deletions(-) diff --git a/includes/AuthPlugin.php b/includes/AuthPlugin.php index df2c01982c..20a43728e9 100644 --- a/includes/AuthPlugin.php +++ b/includes/AuthPlugin.php @@ -38,9 +38,8 @@ class AuthPlugin { * * @param $username String: username. * @return bool - * @public */ - function userExists( $username ) { + public function userExists( $username ) { # Override this! return false; } @@ -54,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; } @@ -65,9 +63,8 @@ class AuthPlugin { * Modify options in the login template. * * @param $template UserLoginTemplate object. - * @public */ - function modifyUITemplate( &$template ) { + public function modifyUITemplate( &$template ) { # Override this! $template->set( 'usedomain', false ); } @@ -76,9 +73,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; } @@ -87,9 +83,8 @@ class AuthPlugin { * * @param $domain String: authentication domain. * @return bool - * @public */ - function validDomain( $domain ) { + public function validDomain( $domain ) { # Override this! return true; } @@ -103,9 +98,8 @@ class AuthPlugin { * forget the & on your function declaration. * * @param User $user - * @public */ - function updateUser( &$user ) { + public function updateUser( &$user ) { # Override this and do something return true; } @@ -123,9 +117,8 @@ class AuthPlugin { * This is just a question, and shouldn't perform any actions. * * @return bool - * @public */ - function autoCreate() { + public function autoCreate() { return false; } @@ -134,7 +127,7 @@ class AuthPlugin { * * @return bool */ - function allowPasswordChange() { + public function allowPasswordChange() { return true; } @@ -149,9 +142,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; } @@ -161,9 +153,8 @@ class AuthPlugin { * * @param $user User object. * @return bool - * @public */ - function updateExternalDB( $user ) { + public function updateExternalDB( $user ) { return true; } @@ -171,9 +162,8 @@ class AuthPlugin { * Check to see if external accounts can be created. * Return true if external accounts can be created. * @return bool - * @public */ - function canCreateAccounts() { + public function canCreateAccounts() { return false; } @@ -186,9 +176,8 @@ class AuthPlugin { * @param string $email * @param string $realname * @return bool - * @public */ - function addUser( $user, $password, $email='', $realname='' ) { + public function addUser( $user, $password, $email='', $realname='' ) { return true; } @@ -200,9 +189,8 @@ class AuthPlugin { * This is just a question, and shouldn't perform any actions. * * @return bool - * @public */ - function strict() { + public function strict() { return false; } @@ -212,9 +200,8 @@ class AuthPlugin { * * @param $username String: username. * @return bool - * @public */ - function strictUserAuth( $username ) { + public function strictUserAuth( $username ) { return false; } @@ -228,9 +215,8 @@ class AuthPlugin { * * @param $user User object. * @param $autocreate bool 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. } @@ -238,14 +224,33 @@ 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; } /** - * Adds any functionality to a User object in context of the auth system + * Get an instance of a User object + * + * @param $user User + * @public */ - function setUserCallbacks( $user, &$callbacks ) { - return true; + public function getUserInstance( User &$user ) { + return new AuthPluginUser( $user ); + } +} + +class AuthPluginUser { + function __construct( $username ) { + $this->mName = $username; + } + + public function isLocked() { + # Override this! + return false; + } + + public function isHidden() { + # Override this! + return false; } } diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 6586f9cbca..16c80139b6 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -17,6 +17,7 @@ $wgAutoloadLocalClasses = array( 'Article' => 'includes/Article.php', 'AtomFeed' => 'includes/Feed.php', 'AuthPlugin' => 'includes/AuthPlugin.php', + 'AuthPluginUser' => 'includes/AuthPlugin.php', 'Autopromote' => 'includes/Autopromote.php', 'BagOStuff' => 'includes/BagOStuff.php', 'Block' => 'includes/Block.php', diff --git a/includes/User.php b/includes/User.php index f49ebf69a2..64aebdd46c 100644 --- a/includes/User.php +++ b/includes/User.php @@ -253,23 +253,6 @@ class User { } wfProfileOut( __METHOD__ ); } - - protected function callAuthPlugin( $fname /* $args */ ) { - $args = func_get_args(); - array_shift( $args ); - // Load auth plugin conterpart functions for User functions - if( !$this->mAuthLoaded ) { - global $wgAuth; - $this->mAuthCallbacks = array(); - $wgAuth->setUserCallbacks( $this, $this->mAuthCallbacks ); - $this->mAuthLoaded = true; - } - // Try to call the auth plugin version of this function - if( isset($this->mAuthCallbacks[$fname]) && is_callable($this->mAuthCallbacks[$fname]) ) { - return call_user_func_array( $this->mAuthCallbacks[$fname], $args ); - } - return NULL; - } /** * Load user table data, given mId has already been set. @@ -1347,7 +1330,9 @@ class User { if( $this->mLocked !== null ) { return $this->mLocked; } - $this->mLocked = (bool)$this->callAuthPlugin( __FUNCTION__ ); + global $wgAuth; + $authUser = $wgAuth->getUserInstance( $this ); + $this->mLocked = (bool)$authUser->isLocked(); return $this->mLocked; } @@ -1362,7 +1347,9 @@ class User { } $this->getBlockedStatus(); if( !$this->mHideName ) { - $this->mHideName = (bool)$this->callAuthPlugin( __FUNCTION__ ); + global $wgAuth; + $authUser = $wgAuth->getUserInstance( $this ); + $this->mHideName = (bool)$authUser->isHidden(); } return $this->mHideName; } -- 2.20.1