Partial revert of r41527. Do this in a cleaner way.
authorAaron Schulz <aaron@users.mediawiki.org>
Sun, 5 Oct 2008 02:45:12 +0000 (02:45 +0000)
committerAaron Schulz <aaron@users.mediawiki.org>
Sun, 5 Oct 2008 02:45:12 +0000 (02:45 +0000)
includes/AuthPlugin.php
includes/AutoLoader.php
includes/User.php

index df2c019..20a4372 100644 (file)
@@ -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;
        }
 }
index 6586f9c..16c8013 100644 (file)
@@ -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',
index f49ebf6..64aebdd 100644 (file)
@@ -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;
        }