mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/DiscussionTools
synced 2024-11-24 00:13:36 +00:00
Add config option to enable/disable permalinks backend
From in-person code review with Amir: using tableExists() is a bad idea, because the table might not consistently exists on all replicas. It's better to have a config option despite the inconvenience. Bug: T315353 Change-Id: I728759634c454c0dcbdc4603c15cab60415c7c03
This commit is contained in:
parent
38ff32c0e7
commit
4ffebd80f2
|
@ -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."
|
||||
|
|
|
@ -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' ] );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue