aboutsummaryrefslogtreecommitdiffstats
path: root/includes/logging
diff options
context:
space:
mode:
authorVadim Kovalenko <vadim.kovalenko@speedandfunction.com>2021-02-15 13:53:00 -0500
committerPeter Ovchyn <peter.ovchyn@speedandfunction.com>2021-02-17 19:12:22 +0200
commit66573bec7e7225bb89c9375fbed44686386acf63 (patch)
tree55e2c0ad9dabf972f79919d9464136d1dabb5cb1 /includes/logging
parent3448f20ab931de998dca93ec325b8c9a8a13461a (diff)
downloadmediawikicore-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.php5
-rw-r--r--includes/logging/LogEntry.php10
-rw-r--r--includes/logging/LogFormatter.php18
-rw-r--r--includes/logging/ManualLogEntry.php2
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;
}