Merge "Remove limit on the number of topic subscriptions per user"

This commit is contained in:
jenkins-bot 2022-04-19 15:29:00 +00:00 committed by Gerrit Code Review
commit 019b22ed11
2 changed files with 0 additions and 41 deletions

View file

@ -574,10 +574,6 @@
"value": "default",
"description": "Override availability of DiscussionTools automatic topic subscription feature. 'default', 'available', or 'unavailable'."
},
"DiscussionToolsMaxSubscriptionsPerUser": {
"value": 5000,
"description": "Maximum number of subscriptions that can be stored for each user."
},
"DiscussionToolsAutoTopicSubEditor": {
"value": "discussiontoolsapi",
"description": "Editor which triggers automatic topic subscriptions. Either 'discussiontoolsapi' for edits made using DiscussionTools' API (e.g. reply and new topic tools), or 'any' for any editor."

View file

@ -4,7 +4,6 @@ namespace MediaWiki\Extension\DiscussionTools;
use ConfigFactory;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\User\UserFactory;
use MediaWiki\User\UserIdentity;
use ReadOnlyMode;
@ -208,39 +207,6 @@ class SubscriptionStore {
);
}
/**
* @param UserIdentity $user
* @return bool
*/
private function userExceedsSubscriptionLimit( UserIdentity $user ): bool {
$logger = LoggerFactory::getInstance( 'DiscussionTools' );
// This is always queried before updating
$db = $this->getConnectionRef( DB_PRIMARY );
$dtConfig = $this->configFactory->makeConfig( 'discussiontools' );
$limit = $dtConfig->get( 'DiscussionToolsMaxSubscriptionsPerUser' );
$rowCount = $db->selectRowCount(
'discussiontools_subscription',
'*',
[ 'sub_user' => $user->getId() ],
__METHOD__,
[ 'LIMIT' => $limit ]
);
if ( $rowCount >= $limit / 2 ) {
$logger->warning(
"User {user} has {rowCount} subscriptions, approaching the limit",
[
'user' => $user->getId(),
'rowCount' => $rowCount,
]
);
}
return $rowCount >= $limit;
}
/**
* @param UserIdentity $user
* @param LinkTarget $target
@ -261,9 +227,6 @@ class SubscriptionStore {
if ( !$user->isRegistered() ) {
return false;
}
if ( $this->userExceedsSubscriptionLimit( $user ) ) {
return false;
}
$dbw = $this->getConnectionRef( DB_PRIMARY );
$dbw->upsert(
'discussiontools_subscription',