https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114124

Revision: 114124
Author:   tstarling
Date:     2012-03-19 09:50:48 +0000 (Mon, 19 Mar 2012)
Log Message:
-----------
During update, defer creation of the AbuseFilter user until after the core 
updates have run, so that you don't get "Table 'user_properties' doesn't exist" 
etc.

Modified Paths:
--------------
    trunk/extensions/AbuseFilter/AbuseFilter.hooks.php

Modified: trunk/extensions/AbuseFilter/AbuseFilter.hooks.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.hooks.php  2012-03-19 07:59:14 UTC 
(rev 114123)
+++ trunk/extensions/AbuseFilter/AbuseFilter.hooks.php  2012-03-19 09:50:48 UTC 
(rev 114124)
@@ -321,11 +321,17 @@
                        $updater->addExtensionUpdate( array( 'addPgField', 
'abuse_filter_log', 'afl_deleted', 'SMALLINT' ) );
                        $updater->addExtensionUpdate( array( 'changeField', 
'abuse_filter_log', 'afl_filter', 'TEXT' ) );
                        $updater->addExtensionUpdate( array( 'addPgExtIndex', 
'abuse_filter_log', 'abuse_filter_log_ip', "(afl_ip)" ) );
-               } else {
-                       throw new MWException("No known Schema updates.");
                }
 
-               // Create the Abuse Filter user.
+               $updater->addExtensionUpdate( array( array( __CLASS__, 
'createAbuseFilterUser' ) ) );
+
+               return true;
+       }
+
+       /**
+        * Updater callback to create the AbuseFilter user after the user 
tables have been updated.
+        */
+       public static function createAbuseFilterUser( $updater ) {
                $user = User::newFromName( wfMsgForContent( 
'abusefilter-blocker' ) );
 
                if ( $user && !$updater->updateRowExists( 'create 
abusefilter-blocker-user' ) ) {
@@ -345,8 +351,6 @@
                        # Promote user so it doesn't look too crazy.
                        $user->addGroup( 'sysop' );
                }
-
-               return true;
        }
 
        /**


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to