Commit graph

79 commits

Author SHA1 Message Date
daniel 9d55ccf86c Remove backwards compatible code.
Per Krinkle's comment at
<https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SpamBlacklist/+/504797/1#message-fb539927b0a2241080960229b9dc2453f6fcd78f>, no backwards compatibility is needed.

Change-Id: Icbf005840d734c7d14a380197f2239a07ba53dbf
2019-09-27 10:52:33 +02:00
daniel 6d559a12fe Support MCR database schema.
This maintains backwards compatibility with MW 1.31.

Cross-wiki loading functionality verified manually.

Bug: T233358
Change-Id: I53e218d8d268060b0b81c5c9bab24b7f5a37917a
2019-09-23 14:49:13 +02:00
Niklas Laxström e74a0120a0 Random cleanups
Change-Id: I0748d1b2062cc8f81175e07c4785eb11e784fe28
2019-09-12 16:19:13 +02:00
Bartosz Dziewoński 5ddc45b62c Actually return errors for action=edit API
Setting 'apiHookResult' results in a "successful" response; if we want
to report an error, we need to use ApiMessage. We already were doing
this for action=upload. Now our action=edit API responses will be
consistent with MediaWiki and other extensions, and will be able to
take advantage of errorformat=html.

Additionally, remove incorrect 'message' value from action=upload
output. It was anyway redundant to the normal error information.

To avoid user interface regressions in VisualEditor, the changes
I3b9c4fef (in VE) and I106dbd3c (in MediaWiki) should be merged first.

Before:
    {
        "edit": {
            "spamblacklist": "example.com/test|example.net/test",
            "result": "Failure"
        }
    }

After:
    {
        "errors": [
            {
                "code": "spamblacklist",
                "data": {
                    "spamblacklist": {
                        "matches": [
                            "example.com/test",
                            "example.net/test"
                        ]
                    }
                },
                "module": "edit",
                "*": "The text you wanted to save was blocked ..."
            }
        ],
        "*": "See http://localhost:3080/w/api.php for API usage. ..."
    }

For comparison, a 'readonly' error:
    {
        "errors": [
            {
                "code": "readonly",
                "data": {
                    "readonlyreason": "foo bar"
                },
                "module": "main",
                "*": "The wiki is currently in read-only mode."
            }
        ],
        "*": "See http://localhost:3080/w/api.php for API usage. ..."
    }

Bug: T229539
Depends-On: I106dbd3cbdbf7082b1d1f1c1106ece6b19c22a86
Depends-On: I3b9c4fefc0869ef7999c21cef754434febd852ec
Change-Id: Id36aa6bdb8f873fe7deb8123a7fc774103721c01
2019-09-10 20:44:35 +00:00
Bartosz Dziewoński 2f1456c4e9 Remove backwards compatibility code for Revision::getQueryInfo()
Revision::getQueryInfo() was added in MediaWiki 1.31. We already
require that or later in our extension.json, so we can safely drop it.

The deprecated methods called by this code have been recently removed
(Id35544b879af1cd708f3efd303fce8d9a1b9eb02) and calling them is
causing Phan failures.

Change-Id: I474367d00c6d3917f1416023901132c0649b3163
2019-09-10 22:41:34 +02:00
Derick Alangi b9c0f0709b Avoid usage of deprecated $wgContLang global (dep in 1.32)
Change-Id: Ia87a464c22be764deacd699fb66f96a663ccfe7c
2019-09-02 09:49:39 +01:00
Bartosz Dziewoński 19c69f4158 Improve edit/upload error message integration
Compared to other extensions like AbuseFilter, SpamBlacklist's
integration with MediaWiki's error reporting was weird.

* When dealing with page editing, we returned two (or more)
  separate messages, which would then be rendered in a list.
  This looks weird, especially if the messages have fancy wrapper
  boxes etc.
* When dealing with file upload, we returned incomplete
  error message, not reporting the blacklisted link.

Now, in both cases, we return a single error message
containing all the details.

Change-Id: I4ca8e67e03726696a428093cc9fb547a6daa1492
2019-08-29 09:23:58 +00:00
Umherirrender 8ab128b44a Remove entry point check for files only contain classes
See https://www.mediawiki.org/w/index.php?title=Register_globals&oldid=3063934#Make_sure_code_is_only_executed_in_the_right_context
for more information

Bug: T230026
Change-Id: I937b002d7fa7469aa1b90a413900b9649e524e18
2019-08-07 17:16:41 +02:00
libraryupgrader a0e6c32f29 build: Updating mediawiki/mediawiki-codesniffer to 26.0.0
The following sniffs now pass and were enabled:
* MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected

Additional changes:
* Committed package-lock.json (T179229) too.

Change-Id: Ic5edf46789ab191b59aaae0921b3038381e704b7
2019-07-16 01:27:19 +00:00
Dan Andreescu a72c0f339a Abandon EventLogging instrumentation
The instrumentation attempted here has been implemented more correctly
by https://phabricator.wikimedia.org/T214706.  This change removes
instrumentation from this extension.  It should not affect much,
because emitting events was already disabled.

Bug: T162365
Change-Id: I8f02c62d41260a62b37a7738d69c039d2ce7562f
2019-07-15 16:52:17 -04:00
James D. Forrester 3f6da90ccf build: Upgrade phan-taint-check-plugin from 1.5.x to 2.0.1
Change-Id: I7ec790eb9e3867c37eef8bc2a13687306f446f30
2019-07-11 07:25:20 +00:00
Derick Alangi 4d939a399a Avoid usage of deprecated ObjectCache::getMainWANInstance()
Replacement with services made available in 1.28 and this extension
requires 1.31. So, the replacement is good.

Change-Id: I1960a36541c9578abc3178a3a5ddcac7c32b8292
2019-07-03 13:53:41 +01:00
jenkins-bot 81ae3d404d Merge "Remove deprecation note in comment" 2019-05-31 20:33:34 +00:00
Thiemo Kreuz 25e4813363 Remove not needed array type hint from hook handler
This parameter is not used anyway. It's possible it is null, as
demonstrated in Id2caa44. Because this code does not need it anyway,
it should not do any harm to remove this type hint.

Change-Id: Id107501e6d62e567354c90e5d3aeec47dbf57298
2019-05-15 20:37:20 +02:00
libraryupgrader 896b9942a8 build: Updating mediawiki/mediawiki-phan-config to 0.5.0
Change-Id: I3de08f7b42583450b46ecbbcc687af7bdc1442a3
2019-03-10 22:31:52 -07:00
Daimona Eaytoy 25b65a40fe Migrate to new Phan
Bug: T216942
Change-Id: I92c55f8af579a92baa02d9bd1b25b8290f0cd196
2019-03-09 12:42:42 +00:00
Umherirrender f3ff95ce08 Use ExtensionRegistry rather than class_exists
Change-Id: I0b23b5c7338f9f0376cfa8c66a765021054d2dfd
2019-03-03 02:22:02 +01:00
Reedy 24804b14c9 Update MediaWiki namespaced AtEase global functions
Change-Id: Ie1816dc2c73e284f412e479cf1345984093050d5
2019-02-13 00:25:53 +00:00
Adam Wight 1c9b42b619 Remove deprecation note in comment
The method is alive and well, used by the pageSaveContent hook.

Change-Id: I0764cbfc090b634b30ffe15c77dc303874c87ae2
2019-01-02 11:15:49 -08:00
Umherirrender 2f715fdf33 Add method scope visibility
Change-Id: I405c27b802000155609e8d32efc5016d8b2fba60
2018-11-02 12:54:59 +01:00
Umherirrender 57ad1703e7 Fix caller name in SpamBlacklist::getCurrentLinks
Seeing {closure} in the logs as caller is not helpful

Change-Id: I1c874317bb44792c4104c2e722179d37ed66f99d
2018-09-30 13:24:28 +02:00
libraryupgrader 06c6c73ef4 build: Updating mediawiki/mediawiki-codesniffer to 22.0.0
Change-Id: I075a20dc74586318abae470758f3583597692ad3
2018-09-03 19:29:35 +00:00
libraryupgrader 54ac4af184 build: Updating mediawiki/mediawiki-codesniffer to 21.0.0
Change-Id: Ic30d624822b5228f201e6b4183075bd591e3e675
2018-07-27 19:06:44 +00:00
Brad Jorsch 1bdc9aa6bb Replace deprecated ContentHandler::makeParserOptions()
Having a different ParserOptions for each content model isn't feasible
in an MCR world. And the only thing using this was Wikibase, which has
been fixed to do what it needs in a different way.

Bug: T194263
Change-Id: Ib8ed827012c7bd73fcdaa6c0c6edd44869c79f14
Depends-On: I01373b29ee25fa9346c6b0317155be4ccdc8c515
2018-07-11 12:34:25 -04:00
Aaron Schulz f8b957167e Hash the title in "blacklist" cache keys
This avoids "Key contains invalid characters" in some cases.

Change-Id: I720c5e89e38b7da69c87134d1ff51787b4fa5c0c
2018-07-10 12:38:53 +01:00
Jack Phoenix 09ca11cd7c wfMemcKey no more!
Change-Id: I7adcbbc1f198230b3c5b6cf6e8cffb34db6d8c9d
2018-06-28 16:45:40 +03:00
libraryupgrader 13843953b5 build: Updating mediawiki/mediawiki-codesniffer to 20.0.0
Change-Id: Ibf57deb5d05ebf728ab51e0c80add9ed3f8a3972
2018-05-26 06:34:28 +00:00
Kunal Mehta b5f42b8a74 Add phan configuration
Introduce BaseBlacklist::getSpamBlacklist() and getEmailBlacklist()
as type-documented alternatives to getInstance( 'email/spam' ) so we
don't need to keep documentating types in a comment when using a function
that isn't included in the base class.

Change-Id: Ic8bd8f803ddbce1294707d5f1d62b701e24d8c6e
2018-02-24 17:26:25 -08:00
Kunal Mehta ac0204b70a Move classes to includes/
Change-Id: Ica7abee84a4e17c530cb755687849a998068be70
2018-02-24 17:08:28 -08:00