Commit graph

13 commits

Author SHA1 Message Date
Umherirrender 32ea1e7596 Use HookHandlers for core hooks
Bug: T271028
Depends-On: If7930a196272f782a6541fb0bc301e04e2d56f38
Change-Id: I7b5b6da058360bb60057f275234f972305ec0ea1
2021-04-15 21:02:35 +00:00
Daimona Eaytoy da1af447e2 Always pass a User object to SpamBlacklist::filter
There are some usages outside of SpamBlacklist that must be fixed. After
doing that, the signature should be updated to make the user
non-optional.

Note: I've changed the signature because external callers only pass the
first two parameters. Hence, it's easier to change it now, add a
User parameter to the callers and then make it non-optional, than having
to pass $preserveLog and $mode in all callers and then swapping the
order (as that would break the world).

Change-Id: I0714eb9dbc6af3c775ab7a81cb4b59e687183f77
2020-11-10 19:13:01 +00:00
DannyS712 ad2f4fbc43 Update hooks to use PageSaveComplete
Update extension to require MW 1.35+, so the hook is available

Bug: T250566
Change-Id: I8dda65f1dcdeff68b884e83dafe9843d974bd3c4
2020-06-23 19:26:10 +00: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 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
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
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
Umherirrender 2f715fdf33 Add method scope visibility
Change-Id: I405c27b802000155609e8d32efc5016d8b2fba60
2018-11-02 12:54:59 +01: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
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
Renamed from SpamBlacklistHooks.php (Browse further)