Commit graph

40 commits

Author SHA1 Message Date
Andrew Garrett 92698e95ba Improve AbuseFilter performance by implementing lazy initialisation of computed variables.
This has been done by replacing simple associative arrays with an AbuseFilterVariableHolder, which recognises helper classes called AFComputedVariables.
Computation may occur during the abuse filter analysis, or later when testing and reviewing filters.
2009-02-26 12:15:14 +00:00
Andrew Garrett 60cfbf15c7 Add a fancy selector for the warning message in the Abuse Filter edit screen, and allow inline previews of the warning messages. 2009-02-03 22:45:42 +00:00
Andrew Garrett 904e6d5c0f Remove duplicate schema update. 2009-01-30 19:02:28 +00:00
Andrew Garrett 7cbfa0597a Prettify and enhance usability of test and examine views.
* Adopt pretty logos for "Match" and "No Match" for visual distinguishment.
* Allow negatives to be reported as well in 'test' interface.
2009-01-30 00:54:20 +00:00
Andrew Garrett b8903121f3 Make sure vars table can't explode beyond 80% wide -- it scrolls if it reaches that width. 2009-01-29 23:38:55 +00:00
Andrew Garrett f9c9c07ccf Abuse Filter changes designed for testing filters against real data:
* Add searching and filtering functionality to the existing 'test' interface.
* Add an 'examine' interface designed for testing filters against a previous change, selectable through the search interface in either the 'test' or the 'examine' view.
* Minor enabling change in ChangesList core, to allow subclassing.
2009-01-29 22:44:31 +00:00
Andrew Garrett 65bc2d1dcf Fix for r46500 -- use the hook so it actually works. 2009-01-29 00:37:53 +00:00
Andrew Garrett 950fb8cf0c Register DB updates with the updater. 2009-01-29 00:26:33 +00:00
Andrew Garrett cb5eca50fd Add Special:AbuseFilter/test, which allows (trusted for now, due to DoS potential) users to enter a filter, and have it checked against the last 100 RecentChanges items while-u-wait.
Some related cleanup to change tagging in ChangesList.
2009-01-28 23:54:41 +00:00
Andrew Garrett 8bea6e85f8 Hide action parameters if an action isn't selected. 2009-01-28 19:40:15 +00:00
Andrew Garrett 8a54e6ba00 Branch merge of change-tagging branch with trunk
-- Introduce tagging of individual changes (revisions, logs, and on recentchanges). The tags are customisable, and currently settable by the Abuse Filter and by the TorBlock extension. The tags can be styled on the various pages on which they appear.
-- Introduces a schema change, three new tables (valid_tag, change_tag, and tag_summary).
2009-01-28 19:08:18 +00:00
Siebrand Mazeland 18bb01c9cf Set wgSpecialPageGroups for the special pages of AbuseFilter 2009-01-28 10:38:58 +00:00
Andrew Garrett 050575a5af Allow users with the appropriate permission to mass-revert all actions (like blocking, deautoconfirming and degrouping) taken by a filter, with an appropriate summary. 2009-01-28 00:10:35 +00:00
Andrew Garrett 4d4da965a8 Remove obsolete comment. 2009-01-27 21:22:58 +00:00
Andrew Garrett 9775ea2787 Soften emergency disable feature, by making it only block restricted actions, rather than disabling the whole filter. 2009-01-27 20:18:58 +00:00
Andrew Garrett c83f74b448 Mark 'block' and 'degroup' as 'restricted' actions -- actions which, if added to a filter, require the 'abusefiilter-modify-restricted' right to edit. 2009-01-27 19:51:38 +00:00
Raimond Spekking 53887bb338 * Add $wgAbuseFilterStyleVersion to SpecialAbuseLog::execute
* Remove one dupe call of addExtensionStyle from SpecialAbuseFilter::execute
* Bump $wgAbuseFilterStyleVersion per CSS changes in r46325
* Add a space between drop down and submit button
2009-01-27 17:32:30 +00:00
Andrew Garrett 8ddd002c14 Remove dependency on change-tagging being branch-merged to trunk for now, and fix a few miscellaneous related bugs that came up in final testing. 2009-01-23 19:23:44 +00:00
Andrew Garrett 53179c675f Apply changes from change-tagging branch. I will remove all of the stuff actually related to change tagging in a moment, to avoid trunk changes on Wikimedia sites. 2009-01-23 19:23:19 +00:00
Andrew Garrett 150ecdb2e9 Fix up AbuseFilter syntax checking:
* Display result below the field, rather than at the top of the page.
* Clear the result when the field is changed, not after some arbitrary time period.
2009-01-15 19:04:36 +00:00
Andrew Garrett 56065d6a59 Re-commit re-autoconfirmation, with fixes for permissions 2008-09-29 13:30:11 +00:00
Andrew Garrett 3a00036631 Drop safeguard percentage to 5%, given the grace period has been reduced to 24h 2008-09-22 14:40:57 +00:00
Andrew Garrett a374d100ff Revert r41145. Restoring autoconfirmed should really have access control, eh? 2008-09-22 14:07:04 +00:00
Andrew Garrett 74d4fa198f Add a hacky tool for restoring autoconfirmed status when it's blocked by a filter. Don't expect it to get much use, so I haven't put much effort in. It gets the job done, though. 2008-09-22 09:16:45 +00:00
Andrew Garrett 8c66e81715 Make some obscure options actually useful, and mark some as obsolete. 2008-09-22 06:28:07 +00:00
Andrew Garrett 00b46cef8b Minor fix for last commit, and add DeleteQueue support. 2008-09-18 13:33:39 +00:00
Andrew Garrett 74097d106e Add rangeblocks, a bit of a nuclear option for the abuse filter. Not intended for Wikimedia use 2008-09-18 13:01:50 +00:00
Andrew Garrett 4fd43cdea9 Add basic functionality to delete filters (not really a deletion, just moved to another list) 2008-09-05 14:27:18 +00:00
Andrew Garrett fc0b18e2d6 PHP Parser:
* Re-add, per Brion's request.
* Add an easy PHP tester, to run the tests used for the native parser.
* Update to pass 20 tests out of 27. Still to go:
** Implement dates.
** Fix order of operations.
** Fix backslash parsing.
** Implement if-then-else and ternery operator.
2008-08-31 05:56:49 +00:00
Andrew Garrett fa02666551 Remove PHP parser. It's totally inconsistent with the native parser now, and updating it wouldn't really be worth it (seeing as the native one would be used on Wikimedia) 2008-08-16 07:41:46 +00:00
Andrew Garrett d75eece7b2 Add River to the extension credits, seeing as he pretty much wrote the native parser. 2008-08-11 05:57:17 +00:00
Siebrand Mazeland 92085b4a3e * Fix a lot of extension special pages mess. Less messy now, aside from the naming of the files containing the aliases. That's for next time.
* Add special page aliases for AbuseFilter
* Change special page aliases method for ChangeAuthor, and Collection
* Add missing to Translate/aliases.txt

(may require another commit; we will see)
2008-08-07 23:29:59 +00:00
Andrew Garrett 016da694a6 Abuse Filter:
* Reimplement tools, starting with a spiffy AJAX expression tester. Didn't bother implementing as non-AJAX, as it's just an extra.
* Change exchange protocol between native parser and PHP app. Resulted in 2-3-fold performance boost.
* Fix minor bug from last night.
2008-08-04 14:27:48 +00:00
Andrew Garrett 4c57a8cf4d Abuse Filter:
* Make with -O3 instead of -g, to improve performance.
* Add AJAX filter syntax checking.
2008-08-04 12:15:14 +00:00
Andrew Garrett 4b53ea93ec Fix deadlocking with shell out to native parser 2008-08-02 11:10:42 +00:00
Andrew Garrett b283904b81 AbuseFilter native parser:
* Revert r38187 for now:
** Introduced a memory leak.
** Used an unnecessary library. The point is taken, and this will be fixed in a few days (using glibc instead).
* Fix logic error in boolean ops.
* Integrate with the PHP abuse filter using AbuseFilterParserNative class.
* Fix memory leak.
* Fix a few miscellaneous bugs
2008-07-31 16:28:24 +00:00
Andrew Garrett 62dd7d3da7 Add native parser for AbuseFilter. Currently being made into a PHP extension. Also some PLURAL stuff that somehow wasn't committed previously 2008-07-29 11:03:26 +00:00
Andrew Garrett 75b5c18f3a AbuseFilter:
* Add a bunch of profiling, so we can figure out where performance bottlenecks are.
* Cache the in-object token cache in memcached, bringing per-condition run times from 4ms to a cooler 296us
2008-07-18 08:30:25 +00:00
Andrew Garrett f34000f1fb Abuse filter updates:
* Disallow more than 100 condition-checks per action.
* Disallow filters which are misbehaving (more than 5 matches, constituting more than 5% of recent actions)
* Display statistics for all filters (percentage of times the condition limit is reached, and percentage of times some filter is matched), and individual filters (percentage of times it's matched).
2008-07-17 02:43:45 +00:00
Andrew Garrett 1f5f95131d Add AbuseFilter extension 2008-06-27 06:18:51 +00:00