r35997 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r35996‎ | r35997 | r35998 >
Date:17:42, 7 June 2008
Author:vasilievvv
Status:old
Tags:
Comment:
* (bug 13507) Account cannot be renamed to a global username
** Now account can be renamed to a global username if it's marked as "in migration"
Modified paths:
  • /trunk/extensions/CentralAuth/CentralAuth.i18n.php (modified) (history)
  • /trunk/extensions/CentralAuth/CentralAuth.php (modified) (history)
  • /trunk/extensions/CentralAuth/CentralAuthHooks.php (modified) (history)
  • /trunk/extensions/CentralAuth/CentralAuthUser.php (modified) (history)
  • /trunk/extensions/CentralAuth/SpecialCentralAuth.php (modified) (history)
  • /trunk/extensions/CentralAuth/central-auth.sql (modified) (history)
  • /trunk/extensions/CentralAuth/db_patches/patch-gu_inmigration.sql (added) (history)

Diff [purge]

Index: trunk/extensions/CentralAuth/central-auth.sql
@@ -74,6 +74,9 @@
7575 -- Used for "deleting" accounts without breaking referential integrity.
7676 gu_hidden bool not null default 0,
7777
 78+ -- If account is marked as in migration, bureaucrats may rename users under it.
 79+ gu_inmigration bool not null default 0,
 80+
7881 -- Registration time
7982 gu_registration varchar(14) binary,
8083
Index: trunk/extensions/CentralAuth/db_patches/patch-gu_inmigration.sql
@@ -0,0 +1 @@
 2+ALTER TABLE globaluser ADD gu_inmigration bool not null default 0 AFTER gu_hidden;
\ No newline at end of file
Property changes on: trunk/extensions/CentralAuth/db_patches/patch-gu_inmigration.sql
___________________________________________________________________
Name: svn:eol-style
13 + native
Index: trunk/extensions/CentralAuth/CentralAuthUser.php
@@ -18,7 +18,7 @@
1919 */
2020 /*private*/ var $mName;
2121 /*private*/ var $mStateDirty = false;
22 - /*private*/ var $mVersion = 1;
 22+ /*private*/ var $mVersion = 2;
2323 /*private*/ var $mDelayInvalidation = 0;
2424
2525 static $mCacheVars = array(
@@ -28,6 +28,7 @@
2929 'mAuthToken',
3030 'mLocked',
3131 'mHidden',
 32+ 'mInMigration',
3233 'mRegistration',
3334 'mEmail',
3435 'mAuthenticationTimestamp',
@@ -131,7 +132,7 @@
132133
133134 $sql =
134135 "SELECT gu_id, lu_wiki, gu_salt, gu_password,gu_auth_token, " .
135 - "gu_locked,gu_hidden,gu_registration,gu_email,gu_email_authenticated " .
 136+ "gu_locked,gu_hidden,gu_inmigration,gu_registration,gu_email,gu_email_authenticated " .
136137 "FROM $globaluser " .
137138 "LEFT OUTER JOIN $localuser ON gu_name=lu_name AND lu_wiki=? " .
138139 "WHERE gu_name=?";
@@ -189,6 +190,7 @@
190191 $this->mAuthToken = $row->gu_auth_token;
191192 $this->mLocked = $row->gu_locked;
192193 $this->mHidden = $row->gu_hidden;
 194+ $this->mInMigration = $row->gu_inmigration;
193195 $this->mRegistration = wfTimestamp( TS_MW, $row->gu_registration );
194196 $this->mEmail = $row->gu_email;
195197 $this->mAuthenticationTimestamp =
@@ -359,6 +361,14 @@
360362 }
361363
362364 /**
 365+ * @return bool
 366+ */
 367+ public function isInMigration() {
 368+ $this->loadState();
 369+ return (bool)$this->mInMigration;
 370+ }
 371+
 372+ /**
363373 * @return string timestamp
364374 */
365375 public function getRegistration() {
@@ -387,6 +397,7 @@
388398
389399 'gu_locked' => 0,
390400 'gu_hidden' => 0,
 401+ 'gu_inmigration' => 0,
391402
392403 'gu_registration' => $dbw->timestamp(),
393404 ),
@@ -786,113 +797,6 @@
787798 }
788799
789800 /**
790 - * Unattach a list of local accounts from the global account
791 - * @param array $list List of wiki names
792 - * @return Status
793 - */
794 - public function adminUnattach( $list ) {
795 - global $wgMemc;
796 - if ( !count( $list ) ) {
797 - return Status::newFatal( 'centralauth-admin-none-selected' );
798 - }
799 - $status = new Status;
800 - $valid = $this->validateList( $list );
801 - $invalid = array_diff( $list, $valid );
802 - foreach ( $invalid as $wikiName ) {
803 - $status->error( 'centralauth-invalid-wiki', $wikiName );
804 - $status->failCount++;
805 - }
806 -
807 - $invalidCount = count( $list ) - count( $valid );
808 - $missingCount = 0;
809 - $dbcw = self::getCentralDB();
810 - $password = $this->getPassword();
811 -
812 - foreach ( $valid as $wikiName ) {
813 - # Delete the user from the central localuser table
814 - $dbcw->delete( 'localuser',
815 - array(
816 - 'lu_name' => $this->mName,
817 - 'lu_wiki' => $wikiName ),
818 - __METHOD__ );
819 - if ( !$dbcw->affectedRows() ) {
820 - $wiki = WikiMap::getWiki( $wikiName );
821 - $status->error( 'centralauth-admin-already-unmerged', $wiki->getDisplayName() );
822 - $status->failCount++;
823 - continue;
824 - }
825 -
826 - # Touch the local user row, update the password
827 - $lb = wfGetLB( $wikiName );
828 - $dblw = $lb->getConnection( DB_MASTER, array(), $wikiName );
829 - $dblw->update( 'user',
830 - array(
831 - 'user_touched' => wfTimestampNow(),
832 - 'user_password' => $password
833 - ), array( 'user_name' => $this->mName ), __METHOD__
834 - );
835 - $id = $dblw->selectField( 'user', 'user_id', array( 'user_name' => $this->mName ), __METHOD__ );
836 - $wgMemc->delete( "$wikiName:user:id:$id" );
837 -
838 - $lb->reuseConnection( $dblw );
839 -
840 - $status->successCount++;
841 - }
842 -
843 - if( in_array( wfWikiID(), $valid ) ) {
844 - $this->resetState();
845 - }
846 -
847 - $this->invalidateCache();
848 -
849 - return $status;
850 - }
851 -
852 - /**
853 - * Delete a global account
854 - */
855 - function adminDelete() {
856 - global $wgMemc;
857 - wfDebugLog( 'CentralAuth', "Deleting global account for user {$this->mName}" );
858 - $centralDB = self::getCentralDB();
859 -
860 - # Synchronise passwords
861 - $password = $this->getPassword();
862 - $localUserRes = $centralDB->select( 'localuser', '*',
863 - array( 'lu_name' => $this->mName ), __METHOD__ );
864 - $name = $this->getName();
865 - foreach ( $localUserRes as $localUserRow ) {
866 - $wiki = $localUserRow->lu_wiki;
867 - wfDebug( __METHOD__.": Fixing password on $wiki\n" );
868 - $lb = wfGetLB( $wiki );
869 - $localDB = $lb->getConnection( DB_MASTER, array(), $wiki );
870 - $localDB->update( 'user',
871 - array( 'user_password' => $password ),
872 - array( 'user_name' => $name ),
873 - __METHOD__
874 - );
875 - $id = $localDB->selectField( 'user', 'user_id', array( 'user_name' => $this->mName ), __METHOD__ );
876 - $wgMemc->delete( "$wiki:user:id:$id" );
877 - $lb->reuseConnection( $localDB );
878 - }
879 -
880 - $centralDB->begin();
881 - # Delete and lock the globaluser row
882 - $centralDB->delete( 'globaluser', array( 'gu_name' => $this->mName ), __METHOD__ );
883 - if ( !$centralDB->affectedRows() ) {
884 - $centralDB->commit();
885 - return Status::newFatal( 'centralauth-admin-delete-nonexistent', $this->mName );
886 - }
887 - # Delete the localuser rows
888 - $centralDB->delete( 'localuser', array( 'lu_name' => $this->mName ), __METHOD__ );
889 - $centralDB->commit();
890 -
891 - $this->invalidateCache();
892 -
893 - return Status::newGood();
894 - }
895 -
896 - /**
897801 * Lock a global account
898802 */
899803 function adminLock() {
@@ -969,6 +873,25 @@
970874 }
971875
972876 /**
 877+ * Mark a global account as in migration
 878+ */
 879+ function adminSetInMigration( $newstatus, $actionType ) {
 880+ $dbw = self::getCentralDB();
 881+ $dbw->begin();
 882+ $dbw->update( 'globaluser', array( 'gu_inmigration' => (bool)$newstatus ),
 883+ array( 'gu_name' => $this->mName ), __METHOD__ );
 884+ if ( !$dbw->affectedRows() ) {
 885+ $dbw->commit();
 886+ return Status::newFatal( "centralauth-admin-{$actionType}-nonexistent", $this->mName );
 887+ }
 888+ $dbw->commit();
 889+
 890+ $this->invalidateCache();
 891+
 892+ return Status::newGood();
 893+ }
 894+
 895+ /**
973896 * Add a local account record for the given wiki to the central database.
974897 * @param string $wikiID
975898 * @param int $localid
@@ -1597,6 +1520,7 @@
15981521 'gu_auth_token' => $this->mAuthToken,
15991522 'gu_locked' => $this->mLocked,
16001523 'gu_hidden' => $this->mHidden,
 1524+ 'gu_inmigration' => $this->mInMigration,
16011525 'gu_email' => $this->mEmail,
16021526 'gu_email_authenticated' => $dbw->timestampOrNull( $this->mAuthenticationTimestamp )
16031527 ),
Index: trunk/extensions/CentralAuth/CentralAuth.php
@@ -171,14 +171,16 @@
172172 $wgSpecialPages['GlobalUsers'] = 'SpecialGlobalUsers';
173173 $wgSpecialPageGroups['GlobalUsers'] = 'users';
174174
175 -$wgLogTypes[] = 'globalauth';
176 -$wgLogNames['globalauth'] = 'centralauth-log-name';
177 -$wgLogHeaders['globalauth'] = 'centralauth-log-header';
178 -$wgLogActions['globalauth/delete'] = 'centralauth-log-entry-delete';
179 -$wgLogActions['globalauth/lock'] = 'centralauth-log-entry-lock';
180 -$wgLogActions['globalauth/unlock'] = 'centralauth-log-entry-unlock';
181 -$wgLogActions['globalauth/hide'] = 'centralauth-log-entry-hide';
182 -$wgLogActions['globalauth/unhide'] = 'centralauth-log-entry-unhide';
 175+$wgLogTypes[] = 'globalauth';
 176+$wgLogNames['globalauth'] = 'centralauth-log-name';
 177+$wgLogHeaders['globalauth'] = 'centralauth-log-header';
 178+$wgLogActions['globalauth/delete'] = 'centralauth-log-entry-delete'; //Legacy
 179+$wgLogActions['globalauth/lock'] = 'centralauth-log-entry-lock';
 180+$wgLogActions['globalauth/unlock'] = 'centralauth-log-entry-unlock';
 181+$wgLogActions['globalauth/hide'] = 'centralauth-log-entry-hide';
 182+$wgLogActions['globalauth/unhide'] = 'centralauth-log-entry-unhide';
 183+$wgLogActions['globalauth/markasmigrating'] = 'centralauth-log-entry-markasmigrating';
 184+$wgLogActions['globalauth/unmarkasmigrating'] = 'centralauth-log-entry-unmarkasmigrating';
183185
184186 $wgLogTypes[] = 'gblrights';
185187 $wgLogNames['gblrights'] = 'centralauth-rightslog-name';
Index: trunk/extensions/CentralAuth/SpecialCentralAuth.php
@@ -66,31 +66,12 @@
6767 return;
6868 }
6969
70 - $deleted = $locked = $unlocked = $hidden = $unhidden = false;
 70+ $locked = $unlocked = $hidden = $unhidden =
 71+ $markedAsInMigration = $unmarkedAsInMigration = false;
7172
7273 if( $this->mPosted ) {
7374 if ( !$wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) {
7475 $this->showError( 'centralauth-token-mismatch' );
75 - /* } elseif( $this->mMethod == 'unmerge' ) {
76 - $status = $globalUser->adminUnattach( $this->mWikis );
77 - if ( !$status->isGood() ) {
78 - $this->showStatusError( $status->getWikiText() );
79 - } else {
80 - global $wgLang;
81 - $this->showSuccess( 'centralauth-admin-unmerge-success',
82 - $wgLang->formatNum( $status->successCount ),
83 - */ /* deprecated */ /* $status->successCount );
84 - }
85 - } elseif ( $this->mMethod == 'delete' ) {
86 - $status = $globalUser->adminDelete();
87 - if ( !$status->isGood() ) {
88 - $this->showStatusError( $status->getWikiText() );
89 - } else {
90 - global $wgLang;
91 - $this->showSuccess( 'centralauth-admin-delete-success', $this->mUserName );
92 - $deleted = true;
93 - $this->logAction( 'delete', $this->mUserName, $wgRequest->getVal( 'reason' ) );
94 - } */
9576 } elseif( $this->mMethod == 'lock' ) {
9677 $status = $globalUser->adminLock();
9778 if ( !$status->isGood() ) {
@@ -131,6 +112,26 @@
132113 $unhidden = true;
133114 $this->logAction( 'unhide', $this->mUserName, $wgRequest->getVal( 'reason' ) );
134115 }
 116+ } elseif( $this->mMethod == 'markasmigrating' ) {
 117+ $status = $globalUser->adminSetInMigration( 1, 'markasmigrating' );
 118+ if ( !$status->isGood() ) {
 119+ $this->showStatusError( $status->getWikiText() );
 120+ } else {
 121+ global $wgLang;
 122+ $this->showSuccess( 'centralauth-admin-markasmigrating-success', $this->mUserName );
 123+ $unhidden = true;
 124+ $this->logAction( 'markasmigrating', $this->mUserName, $wgRequest->getVal( 'reason' ) );
 125+ }
 126+ } elseif( $this->mMethod == 'unmarkasmigrating' ) {
 127+ $status = $globalUser->adminSetInMigration( 0, 'unmarkasmigrating' );
 128+ if ( !$status->isGood() ) {
 129+ $this->showStatusError( $status->getWikiText() );
 130+ } else {
 131+ global $wgLang;
 132+ $this->showSuccess( 'centralauth-admin-unmarkasmigrating-success', $this->mUserName );
 133+ $unhidden = true;
 134+ $this->logAction( 'unmarkasmigrating', $this->mUserName, $wgRequest->getVal( 'reason' ) );
 135+ }
135136 } else {
136137 $this->showError( 'centralauth-admin-bad-input' );
137138 }
@@ -138,20 +139,19 @@
139140 }
140141
141142 $this->showUsernameForm();
142 - if ( !$deleted ) {
143 - $this->showInfo();
144 - //$this->showActionForm( 'delete' );
145 - if( !$globalUser->isLocked() && !$locked )
146 - $this->showActionForm( 'lock' );
147 - if( $globalUser->isLocked() && !$unlocked )
148 - $this->showActionForm( 'unlock' );
149 - if( !$globalUser->isHidden() && !$hidden ) {
150 - $this->showActionForm( 'hide' );
151 - }
152 - if( $globalUser->isHidden() && !$unhidden ) {
153 - $this->showActionForm( 'unhide' );
154 - }
155 - }
 143+ $this->showInfo();
 144+ if( !$globalUser->isLocked() && !$locked )
 145+ $this->showActionForm( 'lock' );
 146+ if( $globalUser->isLocked() && !$unlocked )
 147+ $this->showActionForm( 'unlock' );
 148+ if( !$globalUser->isHidden() && !$hidden )
 149+ $this->showActionForm( 'hide' );
 150+ if( $globalUser->isHidden() && !$unhidden )
 151+ $this->showActionForm( 'unhide' );
 152+ if( !$globalUser->isInMigration() && !$markedAsInMigration )
 153+ $this->showActionForm( 'markasmigrating' );
 154+ if( $globalUser->isInMigration() && !$unmarkedAsInMigration )
 155+ $this->showActionForm( 'unmarkasmigrating' );
156156 }
157157
158158 function showStatusError( $wikitext ) {
@@ -267,12 +267,6 @@
268268 global $wgUser;
269269 ksort( $list );
270270 return
271 - /*Xml::openElement( 'form',
272 - array(
273 - 'method' => 'post',
274 - 'action' => $this->getTitle( $this->mUserName )->getLocalUrl( 'action=submit' ) ) ) .
275 - Xml::hidden( 'wpMethod', $action ) .
276 - Xml::hidden( 'wpEditToken', $wgUser->editToken() ) .*/
277271 '<table>' .
278272 '<thead>' .
279273 $this->tableRow( 'th',
@@ -282,15 +276,8 @@
283277 implode( "\n",
284278 array_map( array( $this, $listMethod ),
285279 $list ) ) .
286 - /*'<tr>' .
287 - '<td></td>' .
288 - '<td>' .
289 - Xml::submitButton( $buttonText ) .
290 - '</td>' .
291 - '</tr>' .*/
292280 '</tbody>' .
293 - '</table>' /*.
294 - Xml::closeElement( 'form' )*/;
 281+ '</table>';
295282 }
296283
297284 function listMergedWikiItem( $row ) {
Index: trunk/extensions/CentralAuth/CentralAuthHooks.php
@@ -287,7 +287,7 @@
288288 return false;
289289 }
290290 $newCentral = new CentralAuthUser( $newName );
291 - if ( $newCentral->exists() ) {
 291+ if ( $newCentral->exists() && !$newCentral->isInMigration() ) {
292292 global $wgOut;
293293 wfLoadExtensionMessages('SpecialCentralAuth');
294294 $wgOut->addWikiMsg( 'centralauth-renameuser-exists', $oldName, $newName );
Index: trunk/extensions/CentralAuth/CentralAuth.i18n.php
@@ -118,60 +118,61 @@
119119 'centralauth-attach-success' => 'The account was migrated to the unified account.',
120120
121121 // Administrator's console
122 - 'centralauth' => 'Unified login administration',
123 - 'centralauth-admin-manage' => 'Manage user data',
124 - 'centralauth-admin-username' => 'User name:',
125 - 'centralauth-admin-lookup' => 'View or edit user data',
126 - 'centralauth-admin-permission' => "Only stewards may merge other people's accounts for them.",
127 - 'centralauth-admin-no-unified' => 'No unified account for this username.',
128 - 'centralauth-admin-info-id' => 'User ID:',
129 - 'centralauth-admin-info-registered' => 'Registered:',
130 - 'centralauth-admin-info-locked' => 'Locked:',
131 - 'centralauth-admin-info-hidden' => 'Hidden:',
132 - 'centralauth-admin-yes' => 'yes',
133 - 'centralauth-admin-no' => 'no',
134 - 'centralauth-admin-attached' => 'Fully merged accounts',
135 - 'centralauth-admin-unattached' => 'Unattached accounts',
136 - 'centralauth-admin-no-unattached' => 'No unmerged accounts remain.',
137 - 'centralauth-admin-list-localwiki' => 'Local wiki',
138 - 'centralauth-admin-list-attached-on' => 'Attached on',
139 - 'centralauth-admin-list-method' => 'Method',
140 - 'centralauth-admin-unmerge' => 'Unmerge selected',
141 - 'centralauth-admin-merge' => 'Merge selected',
142 - 'centralauth-admin-bad-input' => 'Invalid merge selection',
143 - 'centralauth-admin-none-selected' => 'No accounts selected to modify.',
144 - 'centralauth-admin-already-unmerged' => 'Skipping $1, already unmerged',
145 - 'centralauth-admin-unmerge-success' => 'Successfully unmerged $1 {{PLURAL:$1|account|accounts}}',
146 - 'centralauth-admin-delete-title' => 'Delete account',
147 - 'centralauth-admin-delete-description' => 'Deleting the global account will delete any global preferences, unattach all local accounts, and leave the global name free for another user to take.
148 -All local accounts will continue to exist.
149 -The passwords for local accounts created before the merge will revert to their pre-merge values.',
150 - 'centralauth-admin-delete-button' => 'Delete this account',
151 - 'centralauth-admin-delete-success' => 'Successfully deleted the global account for "<nowiki>$1</nowiki>"',
152 - 'centralauth-admin-nonexistent' => 'There is no global account for "<nowiki>$1</nowiki>"',
153 - 'centralauth-admin-delete-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
154 - 'centralauth-token-mismatch' => 'Sorry, we could not process your form submission due to a loss of session data.',
155 - 'centralauth-admin-lock-title' => 'Lock account',
156 - 'centralauth-admin-lock-description' => 'Locking account will make impossible to log under it in any wiki.',
157 - 'centralauth-admin-lock-button' => 'Lock this account',
158 - 'centralauth-admin-lock-success' => 'Successfully locked the global account for "<nowiki>$1</nowiki>"',
159 - 'centralauth-admin-lock-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
160 - 'centralauth-admin-unlock-title' => 'Unlock account',
161 - 'centralauth-admin-unlock-description' => 'Unlocking account will make it possible again to log under it.',
162 - 'centralauth-admin-unlock-button' => 'Unlock this account',
163 - 'centralauth-admin-unlock-success' => 'Successfully unlocked the global account for "<nowiki>$1</nowiki>"',
164 - 'centralauth-admin-unlock-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
165 - 'centralauth-admin-hide-title' => 'Hide account',
166 - 'centralauth-admin-hide-description' => 'Hidden accounts are not shown on [[Special:GlobalUsers|Global users]].',
167 - 'centralauth-admin-hide-button' => 'Hide this account',
168 - 'centralauth-admin-hide-success' => 'Successfully hid the global account for "<nowiki>$1</nowiki>"',
169 - 'centralauth-admin-hide-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
170 - 'centralauth-admin-unhide-title' => 'Unhide account',
171 - 'centralauth-admin-unhide-description' => 'Unhiding account will make it again appear on [[Special:GlobalUsers|Global users]].',
172 - 'centralauth-admin-unhide-button' => 'Unhide this account',
173 - 'centralauth-admin-unhide-success' => 'Successfully unhid the global account for "<nowiki>$1</nowiki>"',
174 - 'centralauth-admin-unhide-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
175 - 'centralauth-admin-reason' => 'Reason:',
 122+ 'centralauth' => 'Unified login administration',
 123+ 'centralauth-admin-manage' => 'Manage user data',
 124+ 'centralauth-admin-username' => 'User name:',
 125+ 'centralauth-admin-lookup' => 'View or edit user data',
 126+ 'centralauth-admin-permission' => "Only stewards may merge other people's accounts for them.",
 127+ 'centralauth-admin-no-unified' => 'No unified account for this username.',
 128+ 'centralauth-admin-info-id' => 'User ID:',
 129+ 'centralauth-admin-info-registered' => 'Registered:',
 130+ 'centralauth-admin-info-locked' => 'Locked:',
 131+ 'centralauth-admin-info-hidden' => 'Hidden:',
 132+ 'centralauth-admin-yes' => 'yes',
 133+ 'centralauth-admin-no' => 'no',
 134+ 'centralauth-admin-attached' => 'Fully merged accounts',
 135+ 'centralauth-admin-unattached' => 'Unattached accounts',
 136+ 'centralauth-admin-no-unattached' => 'No unmerged accounts remain.',
 137+ 'centralauth-admin-list-localwiki' => 'Local wiki',
 138+ 'centralauth-admin-list-attached-on' => 'Attached on',
 139+ 'centralauth-admin-list-method' => 'Method',
 140+ 'centralauth-admin-unmerge' => 'Unmerge selected',
 141+ 'centralauth-admin-merge' => 'Merge selected',
 142+ 'centralauth-admin-bad-input' => 'Invalid merge selection',
 143+ 'centralauth-admin-none-selected' => 'No accounts selected to modify.',
 144+ 'centralauth-admin-nonexistent' => 'There is no global account for "<nowiki>$1</nowiki>"',
 145+ 'centralauth-token-mismatch' => 'Sorry, we could not process your form submission due to a loss of session data.',
 146+ 'centralauth-admin-lock-title' => 'Lock account',
 147+ 'centralauth-admin-lock-description' => 'Locking account will make impossible to log under it in any wiki.',
 148+ 'centralauth-admin-lock-button' => 'Lock this account',
 149+ 'centralauth-admin-lock-success' => 'Successfully locked the global account for "<nowiki>$1</nowiki>"',
 150+ 'centralauth-admin-lock-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
 151+ 'centralauth-admin-unlock-title' => 'Unlock account',
 152+ 'centralauth-admin-unlock-description' => 'Unlocking account will make it possible again to log under it.',
 153+ 'centralauth-admin-unlock-button' => 'Unlock this account',
 154+ 'centralauth-admin-unlock-success' => 'Successfully unlocked the global account for "<nowiki>$1</nowiki>"',
 155+ 'centralauth-admin-unlock-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
 156+ 'centralauth-admin-hide-title' => 'Hide account',
 157+ 'centralauth-admin-hide-description' => 'Hidden accounts are not shown on [[Special:GlobalUsers|Global users]].',
 158+ 'centralauth-admin-hide-button' => 'Hide this account',
 159+ 'centralauth-admin-hide-success' => 'Successfully hid the global account for "<nowiki>$1</nowiki>"',
 160+ 'centralauth-admin-hide-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
 161+ 'centralauth-admin-unhide-title' => 'Unhide account',
 162+ 'centralauth-admin-unhide-description' => 'Unhiding account will make it again appear on [[Special:GlobalUsers|Global users]].',
 163+ 'centralauth-admin-unhide-button' => 'Unhide this account',
 164+ 'centralauth-admin-unhide-success' => 'Successfully unhid the global account for "<nowiki>$1</nowiki>"',
 165+ 'centralauth-admin-unhide-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
 166+ 'centralauth-admin-markasmigrating-title' => 'Mark account as migrating',
 167+ 'centralauth-admin-markasmigrating-description' => 'If account is in migration state, local bureaucrats may rename other accounts to its name.',
 168+ 'centralauth-admin-markasmigrating-button' => 'Mark account as migrating',
 169+ 'centralauth-admin-markasmigrating-success' => 'Successfully marked the global account for "<nowiki>$1</nowiki>" as migrating',
 170+ 'centralauth-admin-markasmigrating-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
 171+ 'centralauth-admin-unmarkasmigrating-title' => 'Unmark this account as migrating',
 172+ 'centralauth-admin-unmarkasmigrating-description' => 'Allows to remove migration mark from the account.',
 173+ 'centralauth-admin-unmarkasmigrating-button' => 'Umark this account as migrating',
 174+ 'centralauth-admin-unmarkasmigrating-success' => 'Successfully unmarked the global account for "<nowiki>$1</nowiki>" as migrating',
 175+ 'centralauth-admin-unmarkasmigrating-nonexistent' => 'Error: the global account "<nowiki>$1</nowiki>" does not exist.',
 176+ 'centralauth-admin-reason' => 'Reason:',
176177
177178 // List of global users
178179 'globalusers' => 'Global user list',
@@ -205,20 +206,22 @@
206207 // Other messages
207208 'centralauth-invalid-wiki' => 'No such wiki DB: $1',
208209 'centralauth-account-exists' => 'Cannot create account: the requested username is already taken in the unified login system.',
209 - 'centralauth-autologin-desc' => 'This special page is used internally by MediaWiki.
 210+ 'centralauth-autologin-desc' => 'This special page is used internally by MediaWiki.
210211 When you [[Special:UserLogin|log in]], the central login system instructs your browser to request this page from all linked domains, using image links.
211212 You have requested this page without providing any authentication data, so it does nothing.',
212213 'centralauth-login-progress' => 'Logging you in to Wikimedia\'s other projects:',
213214 'centralauth-logout-progress' => 'Logging you out from Wikimedia\'s other projects:',
214215
215216 // Logging
216 - 'centralauth-log-name' => 'Global account log',
217 - 'centralauth-log-header' => 'This log contains operations under global accounts: deletions, locking and unlocking.',
218 - 'centralauth-log-entry-delete' => 'deleted global account "<nowiki>$1</nowiki>"',
219 - 'centralauth-log-entry-lock' => 'locked global account "<nowiki>$1</nowiki>"',
220 - 'centralauth-log-entry-unlock' => 'unlocked global account "<nowiki>$1</nowiki>"',
221 - 'centralauth-log-entry-hide' => 'hid global account "<nowiki>$1</nowiki>"',
222 - 'centralauth-log-entry-unhide' => 'unhid global account "<nowiki>$1</nowiki>"',
 217+ 'centralauth-log-name' => 'Global account log',
 218+ 'centralauth-log-header' => 'This log contains operations under global accounts: deletions, locking and unlocking.',
 219+ 'centralauth-log-entry-delete' => 'deleted global account "<nowiki>$1</nowiki>"',
 220+ 'centralauth-log-entry-lock' => 'locked global account "<nowiki>$1</nowiki>"',
 221+ 'centralauth-log-entry-unlock' => 'unlocked global account "<nowiki>$1</nowiki>"',
 222+ 'centralauth-log-entry-hide' => 'hid global account "<nowiki>$1</nowiki>"',
 223+ 'centralauth-log-entry-unhide' => 'unhid global account "<nowiki>$1</nowiki>"',
 224+ 'centralauth-log-entry-markasmigrating' => 'marked global account "<nowiki>$1</nowiki>" as migrating',
 225+ 'centralauth-log-entry-unmarkasmigrating' => 'unmarked global account "<nowiki>$1</nowiki> as migrating"',
223226
224227 'centralauth-rightslog-name' => 'Global rights log',
225228 'centralauth-rightslog-entry-usergroups' => 'changed global group membership for $1 from $2 to $3',

Follow-up revisions

RevisionCommit summaryAuthorDate
r36089Revert to CentralAuth state as of r35994, reverting:...brion17:11, 9 June 2008
r37422* (bug 13507) Account cannot be renamed to a global usernamevasilievvv17:49, 9 July 2008

Status & tagging log