diff options
Diffstat (limited to 'extensions/ConfirmEdit/ConfirmEdit.php')
-rw-r--r-- | extensions/ConfirmEdit/ConfirmEdit.php | 190 |
1 files changed, 13 insertions, 177 deletions
diff --git a/extensions/ConfirmEdit/ConfirmEdit.php b/extensions/ConfirmEdit/ConfirmEdit.php index 479abb54..8116e5a0 100644 --- a/extensions/ConfirmEdit/ConfirmEdit.php +++ b/extensions/ConfirmEdit/ConfirmEdit.php @@ -30,181 +30,17 @@ * @ingroup Extensions */ -if ( !defined( 'MEDIAWIKI' ) ) { - exit; +if ( function_exists( 'wfLoadExtension' ) ) { + wfLoadExtension( 'ConfirmEdit' ); + // Keep i18n globals so mergeMessageFileList.php doesn't break + $wgMessagesDirs['ConfirmEdit'] = __DIR__ . '/i18n'; + $wgExtensionMessagesFiles['ConfirmEditAlias'] = __DIR__ . '/ConfirmEdit.alias.php'; + /* wfWarn( + 'Deprecated PHP entry point used for ConfirmEdit extension. ' . + 'Please use wfLoadExtension instead, ' . + 'see https://www.mediawiki.org/wiki/Extension_registration for more details.' + ); */ + return; +} else { + die( 'This version of the ConfirmEdit extension requires MediaWiki 1.25+' ); } -if ( !defined( 'MW_SUPPORTS_CONTENTHANDLER' ) ) { - throw Exception( 'This version of ConfirmEdit requires MediaWiki 1.21 or later' ); -} - -$wgExtensionCredits['antispam'][] = array( - 'path' => __FILE__, - 'name' => 'ConfirmEdit', - 'author' => array( 'Brion Vibber', '...' ), - 'url' => 'https://www.mediawiki.org/wiki/Extension:ConfirmEdit', - 'version' => '1.3', - 'descriptionmsg' => 'captcha-desc', - 'license-name' => 'GPL-2.0+', -); - -/** - * The 'skipcaptcha' permission key can be given out to - * let known-good users perform triggering actions without - * having to go through the captcha. - * - * By default, sysops and registered bot accounts will be - * able to skip, while others have to go through it. - */ -$wgGroupPermissions['*' ]['skipcaptcha'] = false; -$wgGroupPermissions['user' ]['skipcaptcha'] = false; -$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false; -$wgGroupPermissions['bot' ]['skipcaptcha'] = true; // registered bots -$wgGroupPermissions['sysop' ]['skipcaptcha'] = true; -$wgAvailableRights[] = 'skipcaptcha'; - -/** - * List of IP ranges to allow to skip the captcha, similar to the group setting: - * "$wgGroupPermission[...]['skipcaptcha'] = true" - * - * Specific IP addresses or CIDR-style ranges may be used, - * for instance: - * $wgCaptchaWhitelistIP = array('192.168.1.0/24', '10.1.0.0/16'); - */ -$wgCaptchaWhitelistIP = false; - -$wgCaptcha = null; -$wgCaptchaClass = 'SimpleCaptcha'; - -/** - * Actions which can trigger a captcha - * - * If the 'edit' trigger is on, *every* edit will trigger the captcha. - * This may be useful for protecting against vandalbot attacks. - * - * If using the default 'addurl' trigger, the captcha will trigger on - * edits that include URLs that aren't in the current version of the page. - * This should catch automated linkspammers without annoying people when - * they make more typical edits. - * - * The captcha code should not use $wgCaptchaTriggers, but CaptchaTriggers() - * which also takes into account per namespace triggering. - */ -$wgCaptchaTriggers = array(); -$wgCaptchaTriggers['edit'] = false; // Would check on every edit -$wgCaptchaTriggers['create'] = false; // Check on page creation. -$wgCaptchaTriggers['sendemail'] = false; // Special:Emailuser -$wgCaptchaTriggers['addurl'] = true; // Check on edits that add URLs -$wgCaptchaTriggers['createaccount'] = true; // Special:Userlogin&type=signup -$wgCaptchaTriggers['badlogin'] = true; // Special:Userlogin after failure - -/** - * You may wish to apply special rules for captcha triggering on some namespaces. - * $wgCaptchaTriggersOnNamespace[<namespace id>][<trigger>] forces an always on / - * always off configuration with that trigger for the given namespace. - * Leave unset to use the global options ($wgCaptchaTriggers). - * - * Shall not be used with 'createaccount' (it is not checked). - */ -$wgCaptchaTriggersOnNamespace = array(); - -# Example: -# $wgCaptchaTriggersOnNamespace[NS_TALK]['create'] = false; //Allow creation of talk pages without captchas. -# $wgCaptchaTriggersOnNamespace[NS_PROJECT]['edit'] = true; //Show captcha whenever editing Project pages. - -/** - * Indicate how to store per-session data required to match up the - * internal captcha data with the editor. - * - * 'CaptchaSessionStore' uses PHP's session storage, which is cookie-based - * and may fail for anons with cookies disabled. - * - * 'CaptchaCacheStore' uses $wgMemc, which avoids the cookie dependency - * but may be fragile depending on cache configuration. - */ -$wgCaptchaStorageClass = 'CaptchaSessionStore'; - -/** - * Number of seconds a captcha session should last in the data cache - * before expiring when managing through CaptchaCacheStore class. - * - * Default is a half hour. - */ -$wgCaptchaSessionExpiration = 30 * 60; - -/** - * Number of seconds after a bad login that a captcha will be shown to - * that client on the login form to slow down password-guessing bots. - * - * Has no effect if 'badlogin' is disabled in $wgCaptchaTriggers or - * if there is not a caching engine enabled. - * - * Default is five minutes. - */ -$wgCaptchaBadLoginExpiration = 5 * 60; - -/** - * Allow users who have confirmed their email addresses to post - * URL links without being harassed by the captcha. - */ -$ceAllowConfirmedEmail = false; - -/** - * Number of bad login attempts before triggering the captcha. 0 means the - * captcha is presented on the first login. - */ -$wgCaptchaBadLoginAttempts = 3; - -/** - * Regex to whitelist URLs to known-good sites... - * For instance: - * $wgCaptchaWhitelist = '#^https?://([a-z0-9-]+\\.)?(wikimedia|wikipedia)\.org/#i'; - * Local admins can define a whitelist under [[MediaWiki:captcha-addurl-whitelist]] - */ -$wgCaptchaWhitelist = false; - -/** - * Additional regexes to check for. Use full regexes; can match things - * other than URLs such as junk edits. - * - * If the new version matches one and the old version doesn't, - * toss up the captcha screen. - * - * @fixme Add a message for local admins to add items as well. - */ -$wgCaptchaRegexes = array(); - -/** Register special page */ -$wgSpecialPages['Captcha'] = 'CaptchaSpecialPage'; - -$wgMessagesDirs['ConfirmEdit'] = __DIR__ . '/i18n'; -$wgExtensionMessagesFiles['ConfirmEditAlias'] = __DIR__ . "/ConfirmEdit.alias.php"; - -$wgHooks['EditPageBeforeEditButtons'][] = 'ConfirmEditHooks::confirmEditPage'; -$wgHooks['UserCreateForm'][] = 'ConfirmEditHooks::injectUserCreate'; -$wgHooks['AbortNewAccount'][] = 'ConfirmEditHooks::confirmUserCreate'; -$wgHooks['LoginAuthenticateAudit'][] = 'ConfirmEditHooks::triggerUserLogin'; -$wgHooks['UserLoginForm'][] = 'ConfirmEditHooks::injectUserLogin'; -$wgHooks['AbortLogin'][] = 'ConfirmEditHooks::confirmUserLogin'; -$wgHooks['EmailUserForm'][] = 'ConfirmEditHooks::injectEmailUser'; -$wgHooks['EmailUser'][] = 'ConfirmEditHooks::confirmEmailUser'; -$wgHooks['EditPage::showEditForm:fields'][] = 'ConfirmEditHooks::showEditFormFields'; -$wgHooks['EditFilterMergedContent'][] = 'ConfirmEditHooks::confirmEditMerged'; - -if ( !defined( 'MW_EDITFILTERMERGED_SUPPORTS_API' ) ) { - $wgHooks['APIEditBeforeSave'][] = 'ConfirmEditHooks::confirmEditAPI'; -} - -$wgHooks['APIGetAllowedParams'][] = 'ConfirmEditHooks::APIGetAllowedParams'; -$wgHooks['APIGetParamDescription'][] = 'ConfirmEditHooks::APIGetParamDescription'; -$wgHooks['AddNewAccountApiForm'][] = 'ConfirmEditHooks::addNewAccountApiForm'; -$wgHooks['AddNewAccountApiResult'][] = 'ConfirmEditHooks::addNewAccountApiResult'; -$wgHooks['UnitTestsList'][] = 'ConfirmEditHooks::onUnitTestsList'; - -$wgExtensionFunctions[] = 'ConfirmEditHooks::confirmEditSetup'; - -$wgAutoloadClasses['ConfirmEditHooks'] = __DIR__ . '/includes/ConfirmEditHooks.php'; -$wgAutoloadClasses['SimpleCaptcha'] = __DIR__ . '/SimpleCaptcha/Captcha.php'; -$wgAutoloadClasses['CaptchaStore'] = __DIR__ . '/includes/CaptchaStore.php'; -$wgAutoloadClasses['CaptchaSessionStore'] = __DIR__ . '/includes/CaptchaStore.php'; -$wgAutoloadClasses['CaptchaCacheStore'] = __DIR__ . '/includes/CaptchaStore.php'; -$wgAutoloadClasses['CaptchaSpecialPage'] = __DIR__ . '/includes/specials/SpecialCaptcha.php'; |