mediawiki-extensions-Nuke/extension.json
Chlod Alejandro 41d31c3076
Use revision table instead of recentchanges
This switches Nuke over to using the `revision` table instead
of `recentchanges`, allowing a wider timespan of pages to be
deleted. As a DoS prevention measure, this adds the
`$wgNukeMaxAge` config option (defaulted to the value of
`$wgRCMaxAge`) and a max execution time for the SELECT
(set to `$wgMaxExecutionTimeForExpensiveQueries`).

This also adds a relevant test.

Partially based off of I6c2b7e6b695d58a7dcba93ccaeba9ed35d81cf80.

Bug: T379147
Co-Authored-by: Kgraessle <kgraessle@wikimedia.org>
Change-Id: I5d68d2663751783bcc773799e951f74866ceb722
2024-11-13 02:14:03 +08:00

103 lines
2 KiB
JSON

{
"name": "Nuke",
"author": [
"Brion Vibber",
"Jeroen De Dauw"
],
"url": "https://www.mediawiki.org/wiki/Extension:Nuke",
"descriptionmsg": "nuke-desc",
"license-name": "GPL-2.0-or-later",
"requires": {
"MediaWiki": ">= 1.43"
},
"type": "specialpage",
"ExtensionMessagesFiles": {
"NukeAlias": "Nuke.alias.php"
},
"MessagesDirs": {
"Nuke": [
"i18n"
]
},
"HookHandlers": {
"main": {
"class": "MediaWiki\\Extension\\Nuke\\Hooks"
}
},
"Hooks": {
"ContributionsToolLinks": "main",
"ListDefinedTags": "MediaWiki\\Extension\\Nuke\\Hooks::onRegisterTags",
"ChangeTagsListActive": "MediaWiki\\Extension\\Nuke\\Hooks::onRegisterTags"
},
"config": {
"NukeMaxAge": {
"value": 0,
"description": "The maximum age of a new page creation or file upload before it becomes ineligible for mass deletion. Defaults to the value of $wgRCMaxAge."
}
},
"ResourceModules": {
"ext.nuke.confirm": {
"scripts": [
"ext.nuke.confirm.js"
],
"dependencies": [
"mediawiki.jqueryMsg"
],
"messages": [
"nuke-confirm"
]
},
"ext.nuke.styles": {
"localBasePath": "modules/ext.nuke.styles",
"styles": [
"nuke.less"
]
}
},
"ResourceFileModulePaths": {
"localBasePath": "modules",
"remoteExtPath": "Nuke/modules"
},
"GroupPermissions": {
"sysop": {
"nuke": true
}
},
"AvailableRights": [
"nuke"
],
"GrantPermissions": {
"delete": {
"nuke": true
}
},
"SpecialPages": {
"Nuke": {
"class": "MediaWiki\\Extension\\Nuke\\SpecialNuke",
"services": [
"JobQueueGroup",
"DBLoadBalancerFactory",
"PermissionManager",
"RepoGroup",
"UserFactory",
"UserOptionsLookup",
"UserNamePrefixSearch",
"UserNameUtils",
"NamespaceInfo",
"ContentLanguage",
"NukeIPLookup"
],
"styles": [
"mediawiki.special.special"
]
}
},
"AutoloadNamespaces": {
"MediaWiki\\Extension\\Nuke\\": "includes/"
},
"ServiceWiringFiles": [
"includes/ServiceWiring.php"
],
"manifest_version": 2
}