diff options
author | Vadim Kovalenko <vadim.kovalenko@speedandfunction.com> | 2021-02-15 13:53:00 -0500 |
---|---|---|
committer | Peter Ovchyn <peter.ovchyn@speedandfunction.com> | 2021-02-17 19:12:22 +0200 |
commit | 66573bec7e7225bb89c9375fbed44686386acf63 (patch) | |
tree | 55e2c0ad9dabf972f79919d9464136d1dabb5cb1 /includes/logging | |
parent | 3448f20ab931de998dca93ec325b8c9a8a13461a (diff) | |
download | mediawikicore-66573bec7e7225bb89c9375fbed44686386acf63.tar.gz mediawikicore-66573bec7e7225bb89c9375fbed44686386acf63.zip |
Introduce LogEntry::getPerformerIdentity and deprecate ::getPerformer
Bug: T274329
Change-Id: I3dadb20f076494f7b46f0647ea3a8bfbbdaa59da
Diffstat (limited to 'includes/logging')
-rw-r--r-- | includes/logging/DatabaseLogEntry.php | 5 | ||||
-rw-r--r-- | includes/logging/LogEntry.php | 10 | ||||
-rw-r--r-- | includes/logging/LogFormatter.php | 18 | ||||
-rw-r--r-- | includes/logging/ManualLogEntry.php | 2 |
4 files changed, 26 insertions, 9 deletions
diff --git a/includes/logging/DatabaseLogEntry.php b/includes/logging/DatabaseLogEntry.php index a94381fead1e..659a6e51755d 100644 --- a/includes/logging/DatabaseLogEntry.php +++ b/includes/logging/DatabaseLogEntry.php @@ -23,6 +23,7 @@ * @since 1.19 */ +use MediaWiki\User\UserIdentity; use Wikimedia\Rdbms\IDatabase; /** @@ -213,6 +214,10 @@ class DatabaseLogEntry extends LogEntryBase { return $this->performer; } + public function getPerformerIdentity(): UserIdentity { + return $this->getPerformer(); + } + public function getTarget() { $namespace = $this->row->log_namespace; $page = $this->row->log_title; diff --git a/includes/logging/LogEntry.php b/includes/logging/LogEntry.php index 96b99c2d4b0f..9be27afeafb7 100644 --- a/includes/logging/LogEntry.php +++ b/includes/logging/LogEntry.php @@ -23,6 +23,8 @@ * @since 1.19 */ +use MediaWiki\User\UserIdentity; + /** * Interface for log entries. Every log entry has these methods. * @@ -61,12 +63,18 @@ interface LogEntry { /** * Get the user who performed this action. - * + * @deprecated since 1.36 use ::getPerformerIdentity instead * @return User */ public function getPerformer(); /** + * @since 1.36 + * @return UserIdentity + */ + public function getPerformerIdentity(): UserIdentity; + + /** * Get the target page of this action. * * @return Title diff --git a/includes/logging/LogFormatter.php b/includes/logging/LogFormatter.php index 788d959d73c2..02f3caa5519f 100644 --- a/includes/logging/LogFormatter.php +++ b/includes/logging/LogFormatter.php @@ -25,6 +25,7 @@ use MediaWiki\Linker\LinkRenderer; use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; +use MediaWiki\User\UserIdentity; /** * Implements the default log formatting. @@ -580,7 +581,7 @@ class LogFormatter { $entry = $this->entry; $params = $this->extractParameters(); $params[0] = Message::rawParam( $this->getPerformerElement() ); - $params[1] = $this->canView( LogPage::DELETED_USER ) ? $entry->getPerformer()->getName() : ''; + $params[1] = $this->canView( LogPage::DELETED_USER ) ? $entry->getPerformerIdentity()->getName() : ''; $params[2] = Message::rawParam( $this->makePageLink( $entry->getTarget() ) ); // Bad things happens if the numbers are not in correct order @@ -706,8 +707,8 @@ class LogFormatter { */ public function getPerformerElement() { if ( $this->canView( LogPage::DELETED_USER ) ) { - $performer = $this->entry->getPerformer(); - $element = $this->makeUserLink( $performer ); + $performerIdentity = $this->entry->getPerformerIdentity(); + $element = $this->makeUserLink( $performerIdentity ); if ( $this->entry->isDeleted( LogPage::DELETED_USER ) ) { $element = $this->styleRestricedElement( $element ); } @@ -780,12 +781,12 @@ class LogFormatter { } /** - * @param User $user + * @param UserIdentity $user * @param int $toolFlags Combination of Linker::TOOL_LINKS_* flags * @return string wikitext or html * @return-taint onlysafefor_html */ - protected function makeUserLink( User $user, $toolFlags = 0 ) { + protected function makeUserLink( UserIdentity $user, $toolFlags = 0 ) { if ( $this->plaintext ) { $element = $user->getName(); } else { @@ -793,14 +794,17 @@ class LogFormatter { $user->getId(), $user->getName() ); - if ( $this->linkFlood ) { + $editCount = $user->isRegistered() + ? MediaWikiServices::getInstance()->getUserEditTracker()->getUserEditCount( $user ) + : null; + $element .= Linker::userToolLinks( $user->getId(), $user->getName(), true, // redContribsWhenNoEdits $toolFlags, - $user->getEditCount(), + $editCount, // do not render parenthesises in the HTML markup (CSS will provide) false ); diff --git a/includes/logging/ManualLogEntry.php b/includes/logging/ManualLogEntry.php index 8a0f6e8b1733..da4e6218ad98 100644 --- a/includes/logging/ManualLogEntry.php +++ b/includes/logging/ManualLogEntry.php @@ -463,7 +463,7 @@ class ManualLogEntry extends LogEntryBase implements Taggable { /** * @return UserIdentity */ - public function getPerformerIdentity() : UserIdentity { + public function getPerformerIdentity(): UserIdentity { return $this->performer; } |