diff options
-rw-r--r-- | CREDITS | 1 | ||||
-rw-r--r-- | RELEASE-NOTES | 1 | ||||
-rw-r--r-- | includes/AuthPlugin.php | 27 | ||||
-rw-r--r-- | includes/Preferences.php | 9 |
4 files changed, 33 insertions, 5 deletions
@@ -81,6 +81,7 @@ following names for their contribution to the product. * Michael Walsh * Mike Horvath * Mormegil +* MrPete * Nakon * Nathan Larson * nephele diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 015ee304338e..56dfe79132c5 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -175,6 +175,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * (bug 18242) Show the Subversion revision number per extensions in Special:Version * (bug 18420) Missing file revisions are handled gracefully now +* (bug 9219) Auth plugins can control editing RealName/Email/Nick preferences === Bug fixes in 1.15 === * (bug 16968) Special:Upload no longer throws useless warnings. diff --git a/includes/AuthPlugin.php b/includes/AuthPlugin.php index b29e13f279b4..f4a4b1080865 100644 --- a/includes/AuthPlugin.php +++ b/includes/AuthPlugin.php @@ -130,6 +130,33 @@ class AuthPlugin { public function allowPasswordChange() { return true; } + + /** + * Can users change their Real Name? + * + * @return bool + */ + public function allowRealNameChange() { + return false; + } + + /** + * Can users change their email address? + * + * @return bool + */ + public function allowEmailChange() { + return false; + } + + /** + * Can users change their Nickname? + * + * @return bool + */ + public function allowNickChange() { + return false; + } /** * Set the given password in the authentication database. diff --git a/includes/Preferences.php b/includes/Preferences.php index 2040bb5f2ce5..652ac089aa68 100644 --- a/includes/Preferences.php +++ b/includes/Preferences.php @@ -138,11 +138,11 @@ class Preferences { } // Actually changeable stuff - global $wgAllowRealName; + global $wgAllowRealName, $wgAuth; if ($wgAllowRealName) { $defaultPreferences['realname'] = array( - 'type' => 'text', + 'type' => $wgAuth->allowRealNameChange() ? 'text' : 'info', 'default' => $user->getRealName(), 'section' => 'personal/info', 'label-message' => 'yourrealname', @@ -164,7 +164,6 @@ class Preferences { 'help-message' => 'prefs-help-gender', ); - global $wgAuth; if ($wgAuth->allowPasswordChange()) { global $wgUser; // For skin. $link = $wgUser->getSkin()->link( SpecialPage::getTitleFor( 'ResetPass' ), @@ -253,7 +252,7 @@ class Preferences { global $wgMaxSigChars; $defaultPreferences['nickname'] = array( - 'type' => 'text', + 'type' => $wgAuth->allowNickChange() ? 'text' : 'info', 'maxlength' => $wgMaxSigChars, 'label-message' => 'yournick', 'validation-callback' => @@ -274,7 +273,7 @@ class Preferences { $defaultPreferences['emailaddress'] = array( - 'type' => 'text', + 'type' => $wgAuth->allowEmailChange() ? 'text' : 'info', 'default' => $user->getEmail(), 'section' => 'personal/email', 'label-message' => 'youremail', |