* (bug 814) Integrate AuthPlugin changes to support Ryan Lane's external
[lhc/web/wiklou.git] / includes / SpecialPreferences.php
index 46b6d88..56138e9 100644 (file)
@@ -180,6 +180,8 @@ class PreferencesForm {
                global $wgUser, $wgLang, $wgOut;
                global $wgEnableUserEmail, $wgEnableEmail;
                global $wgEmailAuthentication, $wgMinimalPasswordLength;
+               global $wgAuth;
+
 
                if ( '' != $this->mNewpass ) {
                        if ( $this->mNewpass != $this->mRetypePass ) {
@@ -196,6 +198,10 @@ class PreferencesForm {
                                $this->mainPrefsForm( wfMsg( 'wrongpassword' ) );
                                return;
                        }
+                       if (!$wgAuth->setPassword( $wgUser, $this->mNewpass )) {
+                               $this->mainPrefsForm( wfMsg( 'externaldberror' ) );
+                               return;
+                       }
                        $wgUser->setPassword( $this->mNewpass );
                }
                $wgUser->setRealName( $this->mRealName );
@@ -233,6 +239,10 @@ class PreferencesForm {
                foreach ( $this->mToggles as $tname => $tvalue ) {
                        $wgUser->setOption( $tname, $tvalue );
                }
+               if (!$wgAuth->updateExternalDB($wgUser)) {
+                       $this->mainPrefsForm( wfMsg( 'externaldberror' ) );
+                       return;
+               }
                $wgUser->setCookies();
                $wgUser->saveSettings();