Commit graph

54 commits

Author SHA1 Message Date
Martin Urbanec 9cef38e80f IP Masking: Do not allow temporary users to thank other users
It has been decided to not allow temporary users to thank
other users (see task). This is because the transition
between anonymous and temporary account is nearly invisible,
and it might be confusing why the thanking ability appears
and hides.

Bug: T345679
Change-Id: I62e67327c9a80b3da9e98a2dccdd4ec2051f3026
2023-10-03 22:23:02 +00:00
Daimona Eaytoy 933f5591e5 Make ApiCoreThankIntegrationTest more robust
Use methods provided by core to create (non)existing test pages and
editing them. Make sure that revId is not 1, or the test will fail due
to T344475. This is needed by core change Ie2f1809d.

Change-Id: Ib7ea8c566d330db27c8abfcb4a783ddbd31787e0
2023-08-18 00:37:20 +00:00
Daimona Eaytoy cae27c61f3 Add ApiCoreThankUnitTest to the Database group
The test needs the DB for various things related to user blocks.

Change-Id: I1076c347f02de7285e1fdc77feccb59ad60cd08a
2023-08-06 21:30:56 +02:00
Func b96b4e1fde ServiceWiring: Rename LogStore to ThanksLogStore
`LogStore` is too ambiguous, usually services from extension should
be prefixed with its name.

Change-Id: Ia8a8474ac44ee9990b22ca4650d3ae5311744d19
2023-05-26 21:08:54 +08:00
jenkins-bot cfb40caaa8 Merge "tests: Make PHPUnit data providers static" 2023-05-21 13:06:59 +00:00
Umherirrender fc84a35180 tests: Make PHPUnit data providers static
Initally used a new sniff with autofix (T333745)

Bug: T332865
Change-Id: Id40d7df5f9d380aca50ce4c15bbf83897333ecc5
2023-05-20 19:12:59 +02:00
Marcin Kostrzewski e483b844c9 API: Refactor to match modern code standards
I've moved all API classes into a separate folder,
as I felt like grouping modules improves readability.
APIs themselves had storage logic which I extracted and put
in another folder. I was originally going with an interface
to the storage to allow for other storage methods than
log entries, but the code was too tightly coupled with it,
so I've left that for another day. Added dependency injection
for all services and used ServiceOptions for config vars.

Bug: T337002
Change-Id: Ie8a1f435d635e1d0e1286f673bfe96cc4fdfe4fe
2023-05-20 17:57:26 +03:00
Bartosz Dziewoński dc8f07d2af API tests: Assert error codes, not error messages
Depends-On: I752f82f29bf5f9405ea117ebf9e5cf70335464ad
Needed-By: Ie17987991d1e9a0d77da97e3a81fe0a21c6d7866
Change-Id: I353e34d81afaa06750f8725181c808fabcebea42
2023-04-26 17:55:21 +00:00
Thiemo Kreuz a9878ab2ab Some smaller general code cleanups
In detail:
* Use more compact syntax to avoid a bit of code duplication.
* Use createMock() shortcut in tests.
* Avoid hiding code in strings.
* Remove a comment that literally repeats what the code says.

Change-Id: Ibedef380489451268e2e87f0864164e8f9737913
2023-01-03 12:30:41 +01:00
AnaïsGueyte d287af1af1 Remove GlobalBlock calls from Thanks
Remove the usage of User::isBlockedGlobally and User::getGlobalBlock

Bug: T318891
Change-Id: I79450b34523d0ecb1a7a7b1e5a99b7650e02866e
2022-11-09 14:01:45 -05:00
Alexander Vorwerk d7b1bfe6f3 Replace usages of deprecated wfWikiID()
The global function wfWikiID() is deprecated since 1.35 and it's usages
should be replaced with WikiMap::getCurrentWikiId().

Bug: T298059
Change-Id: I0cb8e96b7e988aa1d6dce0cb3cddf65fc627b214
2021-12-21 02:32:37 +01:00
Alexander Vorwerk c60c7f01f9 Avoid using WikiPage::factory()
WikiPage::factory() is deprecated since 1.36 and should be replaced
with WikiPageFactory::newFromTitle().

Bug: T297688
Change-Id: I8a141512c51b5f7901ce1af36062f9b1ae64ef7b
2021-12-14 22:49:30 +01:00
Alexander Vorwerk 559e3e04ce MediaWikiTestCase -> MediaWikiIntegrationTestCase
MediaWikiTestCase has been renamed to MediaWikiIntegrationTestCase in 1.34.

Bug: T293043
Change-Id: Ic6305e141941667fc52844ae45386ce69a60e8e4
2021-10-13 12:28:31 +02:00
libraryupgrader 56e6d0d365 build: Updating mediawiki/mediawiki-codesniffer to 37.0.0
Change-Id: Ic46650ca7e95698d6c2ee045a62a3f4115c14a2d
2021-07-24 06:11:02 +00:00
Roman Stolar 28501aa637 Update DatabaseBlock construct option 'by' to use User Identity only
Bug: T283641
Change-Id: I0b79f99f89d386288529cd17b8542b90cccf451a
2021-06-01 12:21:42 +03:00
Kunal Mehta 8055732ae0 Remove PHP 5.3 $this closure workaround
Change-Id: Ic1f8147e85ad751927153d5a8f6330d37800aacb
2021-05-14 10:25:15 -07:00
STran 43dd004a62 Allow partially blocking giving thanks
- Add hook to enable blocking thanks
- Check if user is blocked from 'thanks' action
  and disable giving thanks from  API and UI if so

Bug: T242785
Change-Id: I290a7c39c6fcb22a8ab4a9ecbad76a239cb18ea0
2021-05-12 13:06:09 -07:00
Umherirrender 6a8776d1b1 Use ::class for class name
This works also for non-existing classes,
because it is resolved on compile time

Change-Id: Ib40f1aeea35e474530fea42c43d593f6c86f4487
2021-04-08 21:14:44 +02:00
jenkins-bot af5711bf3f Merge "Namespace extension" 2021-03-21 17:52:26 +00:00
Reedy ce439d6ba4 Remove use of whitelist in comment
Bug: T277963
Change-Id: I0355bd4fe912b161d0769eb47d03db5400ce5601
2021-03-21 05:08:01 +00:00
Reedy 3749db7eba Namespace extension
Change-Id: Ic9e0b8d6b3cc6b9be4d6b026cb0a3b4a12aef38f
2021-03-20 18:22:17 -07:00
Reedy 4329060a7b $wgThanksLogTypeWhitelist has been replaced by $wgThanksAllowedLogTypes
Bug: T277963
Change-Id: I7ebc669b353bf6097cbcee3aca186d46419bb5c7
2021-03-20 04:43:48 +00:00
libraryupgrader 2c2b79f9b9 build: Updating dependencies
composer:
* mediawiki/mediawiki-codesniffer: 34.0.0 → 35.0.0
* mediawiki/minus-x: 1.1.0 → 1.1.1

npm:
* eslint-config-wikimedia: 0.17.0 → 0.18.1

Additional changes:
* Added the "composer phan" command to conveniently run phan.

Change-Id: I9f93be1e4480b38031295771aa2a8b540268b2db
2021-01-30 16:07:37 +00:00
Umherirrender 1ec0aed694 Inline class property in tests
Change-Id: Iaa52bd9faafee62ac524e19964bd1aa2feea129b
2021-01-17 20:15:26 +01:00
DannyS712 a1e577c9a5 Remove use of the Revision object returned in WikiPage::doEditContent
Bug: T254952
Change-Id: Ifbdfd9bad21209be186bc93a4a82c034a8c6a26c
2020-06-10 00:31:25 +00:00
jenkins-bot 27104dd11a Merge "Remove use of WikiPage::doEditContent" 2020-06-05 17:14:14 +00:00
libraryupgrader 081ad97a0c build: Updating mediawiki/mediawiki-codesniffer to 31.0.0
Additional changes:
* Replaced "jakub-onderka" packages with "php-parallel-lint".

Change-Id: I1f3e80ffbcdf2526a6533af6d7008d9f3456531c
2020-05-30 08:23:03 +00:00
DannyS712 f1ec6e6542 Remove use of WikiPage::doEditContent
Extension now requires MW 1.35+, so remove outdated version checks

Bug: T250638
Change-Id: I54f9865a09e7dcc00fe74f9d5dd3d73affde331a
2020-05-23 08:16:56 +00:00
DannyS712 80fe5f9228 Use new signature for WikiPage::doDeleteArticleReal in MW 1.35+
Bug: T247869
Change-Id: I606611d2cf5cd77c8cef68cc96def9207d2e5940
2020-03-25 06:45:15 +00:00
Daimona Eaytoy 3d2441cfef Avoid using Title::__construct
Change-Id: Ic78da7e9f417ee64288537e008068949edb1fbac
2020-03-07 13:15:12 +00:00
DannyS712 7de45d5f5c Remove use of ApiTestCase::doLogin
Bug: T244039
Change-Id: I5ce8bebc22d15bc40f2704a2dfec6f0757fb0034
2020-02-03 19:17:51 +00:00
DannyS712 9f25a0b64e Remove use of global $wgUser
Reword ApiCoreThankIntegrationTest::testLogThanksForADeletedLogEntry
to avoid needing to use it

Also remove one use of doLogin(), remaining will be removed separately

Bug: T243874
Bug: T244039
Change-Id: I6cf26839cb4e3042408fb6b059fb877b605763e8
2020-02-01 01:11:40 +00:00
Max Semenik 469117ff28 tests: getMock() is deprecated
Bug: T192167
Change-Id: I460f9c5457483b9350c4f88c24d24425fd46a9a8
2019-10-21 22:18:33 -07:00
Daimona Eaytoy 2b81f0333f Clean up some PHPUnit 4 bc stuff
Bug: T192167
Change-Id: I5b08e479329503ee651580005fe7347f22939ca4
2019-10-13 11:41:05 +02:00
Max Semenik be060b3d07 tests: setExpectedException() is deprecated
Change-Id: Ie9500ff2dabb9315f6fe8344acdfbb1f3f1aac33
2019-10-12 15:55:31 -07:00
James D. Forrester 951d171e6b build: Upgrade mediawiki-codesniffer to v28.0.0
Change-Id: I67fef60b34f8d2b6f5e4920a3caf99bef75fd214
2019-10-11 12:16:59 -07:00
Derick Alangi 649d070d22 Fix function name mismatch, wfWikiId() -> wfWikiID()
Change-Id: I78df6e6bbd19315bb4dc7bcb41b3506a182ce8bb
2019-08-31 21:07:14 +01:00
Thalia a95e0e2b91 Use MediaWiki\Block\DatabaseBlock instead of Block
This follows the rename of the Block class in I6d96b63ca0.

Change-Id: I6c0244987a9b2b1d62efabc2da78b79711dad878
2019-05-31 16:44:56 +01:00
jenkins-bot 182fe138e0 Merge "Allow partially blocked users to use Thanks" 2019-05-30 21:02:03 +00:00
Vedmaka 6684b5aaaa Support for PermissionManager changes at
https://gerrit.wikimedia.org/r/c/mediawiki/core/+/502484

Change-Id: Ie4cedf457eaaa93ec3055c37539322855e02ce26
2019-05-28 09:33:32 +00:00
Thalia 810de9afbd Allow partially blocked users to use Thanks
Only prohibit users from using Thanks if they are blocked from the
associated page. This allows partially blocked users to use thanks
most of the time.

It also allows blocked users to thank on their own talk page, if
they are allowed to edit it, even if they are sitewide blocked.

Bug: T221371
Change-Id: Ic99ec38ea200e806963951b2dd67e56ecde63752
2019-05-22 22:05:33 +01:00
Umherirrender e0be7340bd Use ExtensionRegistry rather than class_exists
Change-Id: I5dd3acc4fff6a0a59693c5258138c4b2aa139cf8
2019-03-03 02:36:06 +01:00
Reedy 64ad66c8d4 s/@gropu/@group/
Change-Id: Ie407283a57e925a819e6365895153917e1ea3447
2018-06-04 07:29:04 +00:00
Roan Kattouw 5f9f913fb6 ApiCoreThankIntegrationTest: Fix intermittent failures
Every time the setup function runs, it chooses a random page name with
random content. If it chooses a page name + content combination that was
used to set up a different test in the same run, the edit it makes will
be a null edit, the revid will be null, and the test will crash.

There are 100 possible page names and 100 possible page texts, so 10k
possibilities total, and the setup function appears to be called 10 times,
so the probability of a collision would have been
(10 choose 2)/10000 = 0.0045 = 0.45%, or one in every 222 times.

Bug: T151878
Change-Id: I800ee8512c2ad171ba793bea343f456653f9a16d
2018-03-19 18:03:27 -07:00
Max Semenik ed087b044c Reintroduce the API to thank for log entries
Originally introduced in b84eedc74e, it was reverted for security concerns.
New changes:
* Instead of bundling the log summary with notification, load it on display
* If the log event has been suppressed after the thanks for it has been sent,
  silently delete the event to prevent the confusion of linking to something
  zapped.
* Keep the 'already sent' cache key compatible with old format
* Validate the log id in the API
* Change ApiCoreThank::getRevisionFromParams() to ApiCoreThank::getRevisionFromId()

Bug: T186855
Bug: T188791
Depends-On: Ic5e9db0def857d9dcecbd06bf081c8c83712c1ea
Change-Id: I03aea7d9f4dfa0fe49639c53968deabf89999d2d
2018-03-06 13:08:47 +08:00
MaxSem 3b2397fea9 Revert "Add support to the Thanks API for thanking log entries"
This reverts commit b84eedc74e.

Bug: T188791
Change-Id: If55ed6cbb5da34c0034da3cc564c6a8ff82448d2
2018-03-02 22:59:20 +00:00
Sam Wilson b84eedc74e Add support to the Thanks API for thanking log entries
Add a 'log' API parameter (for the log ID to thank), and add
a whitelist config variable for specifying which log types are
thankable.

Bug: T186855
Change-Id: I58ae90c9729c0066f952e90fca2cf99b029d0d9b
2018-03-01 14:57:57 -08:00
Sam Wilson 78831d2b68 Rename files and classes in preparation for adding log-thanks
Bug: T186855
Change-Id: I20f5d200c33e395aca9489b73d0ed9b1d0ad5b8c
2018-02-21 12:49:21 +08:00
Sam Wilson 2e7e5e0190 Move classes to includes/ and rename some to match class names
For conformance to coding standards. This removes an exclusion
from the phpcs config.

Change-Id: I1481a3e7e68a81daf310ea3c7bf9dc48cdaf140b
2018-01-30 10:32:03 +08:00
Sam Wilson 55ceeb3fbe Fix member variable visbility and doc
Change-Id: I22d16b05d24c615f0c792063e33433d50a34ad8a
2018-01-19 16:38:58 +08:00