Add rate limiter to Special:ConfirmEmail
[lhc/web/wiklou.git] / includes / specials / SpecialLog.php
index 54afde1..2f0c2ce 100644 (file)
@@ -38,7 +38,9 @@ class SpecialLog extends SpecialPage {
 
                $this->setHeaders();
                $this->outputHeader();
-               $this->getOutput()->addModules( 'mediawiki.userSuggest' );
+               $out = $this->getOutput();
+               $out->addModules( 'mediawiki.userSuggest' );
+               $out->addModuleStyles( 'mediawiki.interface.helpers.styles' );
                $this->addHelpLink( 'Help:Log' );
 
                $opts = new FormOptions;
@@ -104,30 +106,12 @@ class SpecialLog extends SpecialPage {
                        $offenderName = $opts->getValue( 'offender' );
                        $offender = empty( $offenderName ) ? null : User::newFromName( $offenderName, false );
                        if ( $offender ) {
-                               if ( $wgActorTableSchemaMigrationStage === MIGRATION_NEW ) {
+                               if ( $wgActorTableSchemaMigrationStage & SCHEMA_COMPAT_READ_NEW ) {
                                        $qc = [ 'ls_field' => 'target_author_actor', 'ls_value' => $offender->getActorId() ];
+                               } elseif ( $offender->getId() > 0 ) {
+                                       $qc = [ 'ls_field' => 'target_author_id', 'ls_value' => $offender->getId() ];
                                } else {
-                                       if ( $offender->getId() > 0 ) {
-                                               $field = 'target_author_id';
-                                               $value = $offender->getId();
-                                       } else {
-                                               $field = 'target_author_ip';
-                                               $value = $offender->getName();
-                                       }
-                                       if ( !$offender->getActorId() ) {
-                                               $qc = [ 'ls_field' => $field, 'ls_value' => $value ];
-                                       } else {
-                                               $db = wfGetDB( DB_REPLICA );
-                                               $qc = [
-                                                       'ls_field' => [ 'target_author_actor', $field ], // So LogPager::getQueryInfo() works right
-                                                       $db->makeList( [
-                                                               $db->makeList(
-                                                                       [ 'ls_field' => 'target_author_actor', 'ls_value' => $offender->getActorId() ], LIST_AND
-                                                               ),
-                                                               $db->makeList( [ 'ls_field' => $field, 'ls_value' => $value ], LIST_AND ),
-                                                       ], LIST_OR ),
-                                               ];
-                                       }
+                                       $qc = [ 'ls_field' => 'target_author_ip', 'ls_value' => $offender->getName() ];
                                }
                        }
                } else {
@@ -197,12 +181,11 @@ class SpecialLog extends SpecialPage {
         * - Otherwise, assume the whole subpage is a username.
         *
         * @param FormOptions $opts
-        * @param $par
-        * @throws ConfigException
+        * @param string $par
         */
        private function parseParams( FormOptions $opts, $par ) {
                # Get parameters
-               $par = $par !== null ? $par : '';
+               $par = $par ?? '';
                $parms = explode( '/', $par );
                $symsForAll = [ '*', 'all' ];
                if ( $parms[0] != '' &&