Florianschmidtwelzow has uploaded a new change for review. https://gerrit.wikimedia.org/r/212904
Change subject: Remove PHP entry point and use extension.json for ConfirmEdit ...................................................................... Remove PHP entry point and use extension.json for ConfirmEdit Bug: T88047 Change-Id: I70b2fe13c7c236e2a894f01aba2acd3967c28559 --- M ConfirmEdit.php A extension.json 2 files changed, 132 insertions(+), 208 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ConfirmEdit refs/changes/04/212904/1 diff --git a/ConfirmEdit.php b/ConfirmEdit.php index 479abb5..5f5fedb 100644 --- a/ConfirmEdit.php +++ b/ConfirmEdit.php @@ -1,210 +1,13 @@ <?php - -/** - * ConfirmEdit MediaWiki extension. - * - * This is a framework that holds a variety of CAPTCHA tools. The - * default one, 'SimpleCaptcha', is not intended as a production- - * level CAPTCHA system, and another one of the options provided - * should be used in its place for any real usages. - * - * Copyright (C) 2005-2007 Brion Vibber <br...@wikimedia.org> - * http://www.mediawiki.org/ - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * http://www.gnu.org/copyleft/gpl.html - * - * @file - * @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'; + /* 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'; diff --git a/extension.json b/extension.json new file mode 100644 index 0000000..3a33c3a --- /dev/null +++ b/extension.json @@ -0,0 +1,121 @@ +{ + "name": "ConfirmEdit", + "version": "1.4", + "author": [ + "Brion Vibber", + "..." + ], + "url": "https://www.mediawiki.org/wiki/Extension:ConfirmEdit", + "descriptionmsg": "captcha-desc", + "license-name": "GPL-2.0+", + "type": "antispam", + "GroupPermissions": { + "*": { + "skipcaptcha": false + }, + "user": { + "skipcaptcha": false + }, + "autoconfirmed": { + "skipcaptcha": false + }, + "bot": { + "skipcaptcha": true + }, + "sysop": { + "skipcaptcha": true + } + }, + "AvailableRights": [ + "skipcaptcha" + ], + "ExtensionFunctions": [ + "ConfirmEditHooks::confirmEditSetup" + ], + "SpecialPages": { + "Captcha": "CaptchaSpecialPage" + }, + "MessagesDirs": { + "ConfirmEdit": [ + "i18n" + ] + }, + "ExtensionMessagesFiles": { + "ConfirmEditAlias": "ConfirmEdit.alias.php" + }, + "AutoloadClasses": { + "ConfirmEditHooks": "includes/ConfirmEditHooks.php", + "SimpleCaptcha": "SimpleCaptcha/Captcha.php", + "CaptchaStore": "includes/CaptchaStore.php", + "CaptchaSessionStore": "includes/CaptchaStore.php", + "CaptchaCacheStore": "includes/CaptchaStore.php", + "CaptchaSpecialPage": "includes/specials/SpecialCaptcha.php" + }, + "Hooks": { + "EditPageBeforeEditButtons": [ + "ConfirmEditHooks::confirmEditPage" + ], + "UserCreateForm": [ + "ConfirmEditHooks::injectUserCreate" + ], + "AbortNewAccount": [ + "ConfirmEditHooks::confirmUserCreate" + ], + "LoginAuthenticateAudit": [ + "ConfirmEditHooks::triggerUserLogin" + ], + "UserLoginForm": [ + "ConfirmEditHooks::injectUserLogin" + ], + "AbortLogin": [ + "ConfirmEditHooks::confirmUserLogin" + ], + "EmailUserForm": [ + "ConfirmEditHooks::injectEmailUser" + ], + "EmailUser": [ + "ConfirmEditHooks::confirmEmailUser" + ], + "EditPage::showEditForm:fields": [ + "ConfirmEditHooks::showEditFormFields" + ], + "EditFilterMergedContent": [ + "ConfirmEditHooks::confirmEditMerged" + ], + "APIGetAllowedParams": [ + "ConfirmEditHooks::APIGetAllowedParams" + ], + "APIGetParamDescription": [ + "ConfirmEditHooks::APIGetParamDescription" + ], + "AddNewAccountApiForm": [ + "ConfirmEditHooks::addNewAccountApiForm" + ], + "AddNewAccountApiResult": [ + "ConfirmEditHooks::addNewAccountApiResult" + ], + "UnitTestsList": [ + "ConfirmEditHooks::onUnitTestsList" + ] + }, + "config": { + "CaptchaWhitelistIP": false, + "Captcha": null, + "CaptchaClass": "SimpleCaptcha", + "CaptchaTriggers": { + "edit": false, + "create": false, + "sendemail": false, + "addurl": true, + "createaccount": true, + "badlogin": true + }, + "CaptchaTriggersOnNamespace": [], + "CaptchaStorageClass": "CaptchaSessionStore", + "CaptchaSessionExpiration": 1800, + "CaptchaBadLoginExpiration": 300, + "CaptchaBadLoginAttempts": 3, + "CaptchaWhitelist": false, + "CaptchaRegexes": [] + } +} -- To view, visit https://gerrit.wikimedia.org/r/212904 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I70b2fe13c7c236e2a894f01aba2acd3967c28559 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/ConfirmEdit Gerrit-Branch: master Gerrit-Owner: Florianschmidtwelzow <florian.schmidt.wel...@t-online.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits