Merge "Add config option to enable/disable permalinks backend"

This commit is contained in:
jenkins-bot 2022-08-17 03:25:30 +00:00 committed by Gerrit Code Review
commit 5d965ad9db
2 changed files with 9 additions and 8 deletions

View file

@ -620,6 +620,10 @@
"value": "default",
"description": "Override availability of DiscussionTools visual enhancements's reply buttons sub-feature. 'default', 'available', or 'unavailable'."
},
"DiscussionToolsEnablePermalinksBackend": {
"value": true,
"description": "Enable the permalinks backend. Do not enable this unless the database tables exist."
},
"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

@ -16,9 +16,9 @@ use MWTimestamp;
use ReadOnlyMode;
use stdClass;
use TitleFormatter;
use Wikimedia\Rdbms\IDatabase;
use Wikimedia\Rdbms\ILBFactory;
use Wikimedia\Rdbms\ILoadBalancer;
use Wikimedia\Rdbms\IMaintainableDatabase;
use Wikimedia\Rdbms\IResultWrapper;
use Wikimedia\Rdbms\SelectQueryBuilder;
@ -81,19 +81,16 @@ class ThreadItemStore {
* @return bool
*/
private function isDisabled(): bool {
static $tablesCreated = null;
if ( $tablesCreated === null ) {
$tablesCreated = $this->getConnectionRef( DB_REPLICA )->tableExists( 'discussiontools_items', __METHOD__ );
}
return !$tablesCreated;
$dtConfig = $this->configFactory->makeConfig( 'discussiontools' );
return !$dtConfig->get( 'DiscussionToolsEnablePermalinksBackend' );
}
/**
* @param int $dbIndex DB_PRIMARY or DB_REPLICA
*
* @return IMaintainableDatabase
* @return IDatabase
*/
private function getConnectionRef( int $dbIndex ): IMaintainableDatabase {
private function getConnectionRef( int $dbIndex ): IDatabase {
return $this->loadBalancer->getConnectionRef( $dbIndex, [ 'watchlist' ] );
}