X-Git-Url: https://git.cyclocoop.org/admin/?a=blobdiff_plain;f=includes%2Flogging%2FLogPager.php;h=24fdfb0195021852da75aaf90a09758411d86dcd;hb=4db681a29d486c56d4dce8906c86636edbdd46d2;hp=5404f35fced74064f932da7c8d031de558a3f5d9;hpb=86b4925b2edfddf00c9184bcd24be34f33fa4607;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/logging/LogPager.php b/includes/logging/LogPager.php index 5404f35fce..24fdfb0195 100644 --- a/includes/logging/LogPager.php +++ b/includes/logging/LogPager.php @@ -176,13 +176,12 @@ class LogPager extends ReverseChronologicalPager { // Normalize username first so that non-existent users used // in maintenance scripts work $name = $usertitle->getText(); - /* Fetch userid at first, if known, provides awesome query plan afterwards */ - $userid = User::idFromName( $name ); - if ( !$userid ) { - $this->mConds['log_user_text'] = IP::sanitizeIP( $name ); - } else { - $this->mConds['log_user'] = $userid; - } + + // Assume no joins required for log_user + $this->mConds[] = ActorMigration::newMigration()->getWhere( + wfGetDB( DB_REPLICA ), 'log_user', User::newFromName( $name, false ) + )['conds']; + $this->enforcePerformerRestrictions(); $this->performer = $name; @@ -423,9 +422,9 @@ class LogPager extends ReverseChronologicalPager { $this->actionRestrictionsEnforced = true; $user = $this->getUser(); if ( !$user->isAllowed( 'deletedhistory' ) ) { - $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::DELETED_USER ) . ' = 0'; + $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::DELETED_ACTION ) . ' = 0'; } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) { - $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::SUPPRESSED_USER ) . + $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::SUPPRESSED_ACTION ) . ' != ' . LogPage::SUPPRESSED_USER; } } @@ -441,9 +440,9 @@ class LogPager extends ReverseChronologicalPager { $this->performerRestrictionsEnforced = true; $user = $this->getUser(); if ( !$user->isAllowed( 'deletedhistory' ) ) { - $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::DELETED_ACTION ) . ' = 0'; + $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::DELETED_USER ) . ' = 0'; } elseif ( !$user->isAllowedAny( 'suppressrevision', 'viewsuppressed' ) ) { - $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::SUPPRESSED_ACTION ) . + $this->mConds[] = $this->mDb->bitAnd( 'log_deleted', LogPage::SUPPRESSED_USER ) . ' != ' . LogPage::SUPPRESSED_ACTION; } }