aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CREDITS1
-rw-r--r--RELEASE-NOTES1
-rw-r--r--includes/AuthPlugin.php27
-rw-r--r--includes/Preferences.php9
4 files changed, 33 insertions, 5 deletions
diff --git a/CREDITS b/CREDITS
index fb646294001b..33cbd5b7abf6 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 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',