X-Git-Url: https://git.toastfreeware.priv.at/toast/cookiecaptcha.git/blobdiff_plain/152f5e39e0ad8115470ee380e567a3ea31db6f1b..9203371284d93eca9e6d2d56e067aa4fa08d9785:/ConfirmEdit.php diff --git a/ConfirmEdit.php b/ConfirmEdit.php index ceb4842..9de3da6 100644 --- a/ConfirmEdit.php +++ b/ConfirmEdit.php @@ -35,10 +35,12 @@ global $wgExtensionFunctions, $wgGroupPermissions; $wgExtensionFunctions[] = 'confirmEditSetup'; $wgExtensionCredits['other'][] = array( + 'path' => __FILE__, 'name' => 'ConfirmEdit', 'author' => 'Brion Vibber', 'url' => 'http://www.mediawiki.org/wiki/Extension:ConfirmEdit', 'description' => 'Simple captcha implementation', + 'descriptionmsg' => 'captcha-desc', ); /** @@ -54,6 +56,7 @@ $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: @@ -92,7 +95,7 @@ $wgCaptchaTriggers['badlogin'] = true; // Special:Userlogin after failure /** * You may wish to apply special rules for captcha triggering on some namespaces. - * $wgCaptchaTriggersOnNamespace[][] forces an always on / + * $wgCaptchaTriggersOnNamespace[][] forces an always on / * always off configuration with that trigger for the given namespace. * Leave unset to use the global options ($wgCaptchaTriggers). * @@ -100,9 +103,9 @@ $wgCaptchaTriggers['badlogin'] = true; // Special:Userlogin after failure */ $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. +# 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 @@ -145,6 +148,13 @@ $wgCaptchaBadLoginExpiration = 5 * 60; global $ceAllowConfirmedEmail; $ceAllowConfirmedEmail = false; +/** + * Number of bad login attempts before triggering the captcha. 0 means the + * captcha is presented on the first login. + */ +global $wgCaptchaBadLoginAttempts; +$wgCaptchaBadLoginAttempts = 3; + /** * Regex to whitelist URLs to known-good sites... * For instance: @@ -165,11 +175,11 @@ $wgCaptchaWhitelist = false; $wgCaptchaRegexes = array(); /** Register special page */ -global $wgSpecialPages; $wgSpecialPages['Captcha'] = array( /*class*/'CaptchaSpecialPage', /*name*/'Captcha' ); $wgConfirmEditIP = dirname( __FILE__ ); $wgExtensionMessagesFiles['ConfirmEdit'] = "$wgConfirmEditIP/ConfirmEdit.i18n.php"; +$wgExtensionAliasesFiles['ConfirmEdit'] = "$wgConfirmEditIP/ConfirmEdit.alias.php"; if ( defined( 'MW_SUPPORTS_EDITFILTERMERGED' ) ) { $wgHooks['EditFilterMerged'][] = 'ConfirmEditHooks::confirmEditMerged'; @@ -181,9 +191,11 @@ $wgHooks['AbortNewAccount'][] = 'ConfirmEditHooks::confirmUserCreate'; $wgHooks['LoginAuthenticateAudit'][] = 'ConfirmEditHooks::triggerUserLogin'; $wgHooks['UserLoginForm'][] = 'ConfirmEditHooks::injectUserLogin'; $wgHooks['AbortLogin'][] = 'ConfirmEditHooks::confirmUserLogin'; +# Register API hook +$wgHooks['APIEditBeforeSave'][] = 'ConfirmEditHooks::confirmEditAPI'; -$wgAutoloadClasses['ConfirmEditHooks'] - = $wgAutoloadClasses['SimpleCaptcha'] +$wgAutoloadClasses['ConfirmEditHooks'] + = $wgAutoloadClasses['SimpleCaptcha'] = $wgAutoloadClasses['CaptchaSessionStore'] = $wgAutoloadClasses['CaptchaCacheStore'] = $wgAutoloadClasses['CaptchaSpecialPage'] @@ -194,7 +206,7 @@ $wgAutoloadClasses['ConfirmEditHooks'] */ function confirmEditSetup() { global $wgGroupPermissions, $wgCaptchaTriggers; - if( !$wgGroupPermissions['*']['read'] && $wgCaptchaTriggers['badlogin'] ) { + if ( !$wgGroupPermissions['*']['read'] && $wgCaptchaTriggers['badlogin'] ) { // We need to ensure that the captcha interface is accessible // so that unauthenticated users can actually get in after a // mistaken password typing. @@ -205,5 +217,3 @@ function confirmEditSetup() { $wgWhitelistRead[] = $help->getPrefixedText(); } } - -