aboutsummaryrefslogtreecommitdiffstats
path: root/includes/logging
diff options
context:
space:
mode:
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>2022-02-05 17:12:39 +0000
committerGerrit Code Review <gerrit@wikimedia.org>2022-02-05 17:12:39 +0000
commitd5a749ae48066a7b28022a08bc3eb86400e91287 (patch)
treee4a707d4c7da65c08c20406a1c84ae8550c1d990 /includes/logging
parent3c4ed2d4a5b8d07db3a008f32da7d9d3d9703840 (diff)
parentcf971e0d4677fa6831ade4dabdfda82604dab00a (diff)
downloadmediawikicore-d5a749ae48066a7b28022a08bc3eb86400e91287.tar.gz
mediawikicore-d5a749ae48066a7b28022a08bc3eb86400e91287.zip
Merge "RCDatabaseLogEntry: Stop returning an unknown actor if rc_user is given"
Diffstat (limited to 'includes/logging')
-rw-r--r--includes/logging/RCDatabaseLogEntry.php46
1 files changed, 31 insertions, 15 deletions
diff --git a/includes/logging/RCDatabaseLogEntry.php b/includes/logging/RCDatabaseLogEntry.php
index f1adf8eb5a0c..39418f223a40 100644
--- a/includes/logging/RCDatabaseLogEntry.php
+++ b/includes/logging/RCDatabaseLogEntry.php
@@ -71,23 +71,39 @@ class RCDatabaseLogEntry extends DatabaseLogEntry {
public function getPerformerIdentity(): UserIdentity {
if ( !$this->performer ) {
$actorStore = MediaWikiServices::getInstance()->getActorStore();
- try {
- $this->performer = $actorStore->newActorFromRowFields(
- $this->row->rc_user ?? 0,
- $this->row->rc_user_text,
- $this->row->rc_actor ?? null
- );
- } catch ( InvalidArgumentException $e ) {
- LoggerFactory::getInstance( 'logentry' )->warning(
- 'Failed to instantiate RC log entry performer', [
- 'exception' => $e,
- 'log_id' => $this->getId()
- ]
- );
- $this->performer = $actorStore->getUnknownActor();
+ $userFactory = MediaWikiServices::getInstance()->getUserFactory();
+ if ( isset( $this->row->rc_actor ) ) {
+ try {
+ $this->performer = $actorStore->newActorFromRowFields(
+ $this->row->rc_user ?? 0,
+ $this->row->rc_user_text,
+ $this->row->rc_actor
+ );
+ } catch ( InvalidArgumentException $e ) {
+ LoggerFactory::getInstance( 'logentry' )->warning(
+ 'Failed to instantiate RC log entry performer', [
+ 'exception' => $e,
+ 'log_id' => $this->getId()
+ ]
+ );
+ }
+ } elseif ( isset( $this->row->rc_user ) ) {
+ $this->performer = $userFactory->newFromId( $this->row->rc_user )->getUser();
+ } elseif ( isset( $this->row->rc_user_text ) ) {
+ $user = $userFactory->newFromName( $this->row->rc_user_text );
+ if ( $user ) {
+ $this->performer = $user->getUser();
+ } else {
+ LoggerFactory::getInstance( 'logentry' )->warning(
+ 'Failed to instantiate RC log entry performer', [
+ 'rc_user_text' => $this->row->rc_user_text,
+ 'log_id' => $this->getId()
+ ]
+ );
+ }
}
}
- return $this->performer;
+ return $this->performer ?: $actorStore->getUnknownActor();
}
public function getTarget() {