use MediaWiki\Auth\AuthManager;
use MediaWiki\Auth\AuthenticationResponse;
use MediaWiki\Auth\AuthenticationRequest;
+use Wikimedia\ScopedCallback;
/**
* String Some punctuation to prevent editing from broken text-mangling proxies.
* @return string
*/
public function __toString() {
- return $this->getName();
+ return (string)$this->getName();
}
/**
* protected against race conditions using a compare-and-set (CAS) mechanism
* based on comparing $this->mTouched with the user_touched field.
*
- * @param DatabaseBase $db
- * @param array $conditions WHERE conditions for use with DatabaseBase::update
- * @return array WHERE conditions for use with DatabaseBase::update
+ * @param Database $db
+ * @param array $conditions WHERE conditions for use with Database::update
+ * @return array WHERE conditions for use with Database::update
*/
- protected function makeUpdateConditions( DatabaseBase $db, array $conditions ) {
+ protected function makeUpdateConditions( Database $db, array $conditions ) {
if ( $this->mTouched ) {
// CAS check: only update if the row wasn't changed sicne it was loaded.
$conditions['user_touched'] = $db->timestamp( $this->mTouched );
return false;
}
+ $limits = array_merge(
+ [ '&can-bypass' => true ],
+ $wgRateLimits[$action]
+ );
+
// Some groups shouldn't trigger the ping limiter, ever
- if ( !$this->isPingLimitable() ) {
+ if ( $limits['&can-bypass'] && !$this->isPingLimitable() ) {
return false;
}
- $limits = $wgRateLimits[$action];
$keys = [];
$id = $this->getId();
$userLimit = false;
wfGetDB( DB_MASTER )->onTransactionPreCommitOrIdle(
function() use ( $cache, $key ) {
$cache->delete( $key );
- }
+ },
+ __METHOD__
);
}
}
* Deferred version of incEditCountImmediate()
*/
public function incEditCount() {
- wfGetDB( DB_MASTER )->onTransactionPreCommitOrIdle( function() {
- $this->incEditCountImmediate();
- } );
+ wfGetDB( DB_MASTER )->onTransactionPreCommitOrIdle(
+ function () {
+ $this->incEditCountImmediate();
+ },
+ __METHOD__
+ );
}
/**