From 1f18e8b35cdee69abbcd7d34c8002668afb403f4 Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Fri, 1 May 2009 01:27:22 +0000 Subject: [PATCH] (bug 9219) Auth plugins can control editing RealName/Email/Nick preferences. Based on patch by MrPete. --- CREDITS | 1 + RELEASE-NOTES | 1 + includes/AuthPlugin.php | 27 +++++++++++++++++++++++++++ includes/Preferences.php | 9 ++++----- 4 files changed, 33 insertions(+), 5 deletions(-) diff --git a/CREDITS b/CREDITS index fb64629400..33cbd5b7ab 100644 --- a/CREDITS +++ b/CREDITS @@ -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 015ee30433..56dfe79132 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 b29e13f279..f4a4b10808 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 2040bb5f2c..652ac089aa 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', -- 2.20.1