summaryrefslogtreecommitdiff
path: root/extensions/TitleBlacklist/TitleBlacklist.php
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/TitleBlacklist/TitleBlacklist.php')
-rw-r--r--extensions/TitleBlacklist/TitleBlacklist.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/extensions/TitleBlacklist/TitleBlacklist.php b/extensions/TitleBlacklist/TitleBlacklist.php
new file mode 100644
index 00000000..68fb6778
--- /dev/null
+++ b/extensions/TitleBlacklist/TitleBlacklist.php
@@ -0,0 +1,86 @@
+<?php
+if ( !defined( 'MEDIAWIKI' ) ) {
+ exit( 1 );
+}
+
+// @{
+/**
+ * @file
+ * @ingroup Extensions
+ */
+
+$wgExtensionCredits['antispam'][] = array(
+ 'path' => __FILE__,
+ 'name' => 'Title Blacklist',
+ 'author' => array( 'Victor Vasiliev', 'Fran Rogers' ),
+ 'version' => '1.4.2',
+ 'url' => 'https://www.mediawiki.org/wiki/Extension:Title_Blacklist',
+ 'descriptionmsg' => 'titleblacklist-desc',
+);
+
+$dir = __DIR__;
+$wgExtensionMessagesFiles['TitleBlacklist'] = $dir . '/TitleBlacklist.i18n.php';
+$wgAutoloadClasses['TitleBlacklist'] = $dir . '/TitleBlacklist.list.php';
+$wgAutoloadClasses['TitleBlacklistHooks'] = $dir . '/TitleBlacklist.hooks.php';
+
+/** @defgroup Title blacklist source types
+ * @{
+ */
+define( 'TBLSRC_MSG', 0 ); ///< For internal usage
+define( 'TBLSRC_LOCALPAGE', 1 ); ///< Local wiki page
+define( 'TBLSRC_URL', 2 ); ///< Load blacklist from URL
+define( 'TBLSRC_FILE', 3 ); ///< Load from file
+/** @} */
+
+/**
+ * Array of title blacklist sources.
+ *
+ * Should be in array( name => source description ) format.
+ * See extension documentation for details of source description.
+ */
+$wgTitleBlacklistSources = array();
+
+/**
+ * Sets the sources which may work as a username filter.
+ *
+ * '*' is for all; false disables all.
+ *
+ * If you want to limit it to particular sources, use
+ * array( source name 1, source name 2 ).
+ * This may be useful when you have shared account creation system
+ * in order to avoid blacklist fragmentation.
+ */
+$wgTitleBlacklistUsernameSources = '*';
+
+$wgTitleBlacklistCaching = array(
+ 'warningchance' => 100,
+ 'expiry' => 900,
+ 'warningexpiry' => 600,
+);
+
+$dir = dirname( __FILE__ );
+
+// Register the API method
+$wgAutoloadClasses['ApiQueryTitleBlacklist'] = "$dir/api/ApiQueryTitleBlacklist.php";
+$wgAPIModules['titleblacklist'] = 'ApiQueryTitleBlacklist';
+
+$wgAvailableRights[] = 'tboverride'; // Implies tboverride-account
+$wgAvailableRights[] = 'tboverride-account'; // For account creation
+$wgGroupPermissions['sysop']['tboverride'] = true;
+
+$wgHooks['getUserPermissionsErrorsExpensive'][] = 'TitleBlacklistHooks::userCan';
+$wgHooks['AbortMove'][] = 'TitleBlacklistHooks::abortMove';
+$wgHooks['AbortNewAccount'][] = 'TitleBlacklistHooks::abortNewAccount';
+$wgHooks['AbortAutoAccount'][] = 'TitleBlacklistHooks::abortNewAccount';
+$wgHooks['CentralAuthAutoCreate'][] = 'TitleBlacklistHooks::centralAuthAutoCreate';
+$wgHooks['EditFilter'][] = 'TitleBlacklistHooks::validateBlacklist';
+$wgHooks['ArticleSaveComplete'][] = 'TitleBlacklistHooks::clearBlacklist';
+$wgHooks['UserCreateForm'][] = 'TitleBlacklistHooks::addOverrideCheckbox';
+
+$wgResourceModules['mediawiki.api.titleblacklist'] = array(
+ 'scripts' => 'mediawiki.api.titleblacklist.js',
+ 'localBasePath' => $dir . '/modules',
+ 'remoteExtPath' => 'TitleBlacklist/modules',
+ 'dependencies' => array( 'mediawiki.api' ),
+);
+// @}