Commit graph

5958 commits

Author SHA1 Message Date
Michael Holloway 3513c642dd Create push subscription manager group/right to clean up dead subs
Creates a new push-subscription-manager group and an associated
right, manage-all-push-subscriptions. The purpose of this is to
allow privileged accounts to purge expired subscriptions from the
database on behalf of other users. A user with this right will be
permitted to delete any subscription from the DB based on the token
alone. For all other users, deletion requests will be limited to
those associated with the requesting user's central ID.

This right will be granted to a bot account on Metawiki associated
with the Wikimedia push notifications service, and the push
notifications service account will make push subscription delete
requests to the API for subscriptions for which vendor APIs return bad
subscription responses.

Additionally, the providertoken parameter to ApiPushSubscriptionDelete
is updated to allow multiple providertoken values.

Bug: T259148
Change-Id: Ia6c17588ee94e6be74e5e3a75eb33e38f172fc93
2020-08-20 17:08:48 -04:00
Michael Holloway 74c1a5bbc7 Collect baseline event and notification stats
Adds statsd counters for events and notifications, both overall and by
type. (Events and notifications have a one-to-many relationship, as
notifications may be created for multiple users per event.)

These are specifically of interest to estimate the potential volume of
notifications to be handled by the new push service.

Bug: T260836
Change-Id: I41974cd30a90c674f56003e15d540a5581d19c7d
2020-08-20 13:55:03 -04:00
Translation updater bot d0493529af Localisation updates from https://translatewiki.net.
Change-Id: I2f5aebb831bfd0a32ce9b23c4ed5c2db4eb8f60a
2020-08-20 08:26:50 +02:00
Translation updater bot ea297783af Localisation updates from https://translatewiki.net.
Change-Id: I5b74f46671a63f7d05cf6a27ee0518b24030bbd3
2020-08-19 08:38:29 +02:00
Mateus Santos c188dac23f push: send apns topic when present
1) send apns topic when present in subscription metadata
2) check if subscription metadata is a valid JSON string
3) make epp_id column at echo_push_provider table auto_increment,
otherwise it will fail when trying to add a second row in the table

Bug: T259394
Change-Id: I785435e9f2d4ba9c14977d431d271f0fa2d0c795
2020-08-18 13:21:20 +00:00
jenkins-bot abb59057e9 Merge "Fix query condition building in EmailBatch" 2020-08-18 01:13:25 +00:00
jenkins-bot 22869fb3c6 Merge "Fix: Add newly created aria-label message to extension.json" 2020-08-17 07:59:59 +00:00
Translation updater bot b7467e2f2b Localisation updates from https://translatewiki.net.
Change-Id: If771383b0b4663ecedb753ec9f7761edc2b35e23
2020-08-17 08:42:27 +02:00
edwintam ad8f052a69 Fix: Add newly created aria-label message to extension.json
Bug: T260505
Change-Id: I585156b666dbe9ae0a04d03ac9fb8b951b97fbd4
2020-08-16 19:38:21 -07:00
DannyS712 d24df030a3 Remove legacy ApiBase::getTokenSalt() overrides
Method was removed in 1.24, extension requires MW 1.35+,
so overrides aren't used

Change-Id: Ia543a06c3fcefce3429c0031b813b742feee76f1
2020-08-15 05:30:58 +00:00
Matěj Suchánek 52f4babb26 Fix query condition building in EmailBatch
array_plus (+=) does a union over keys and does not merge
sequential (integer) keys like array_merge. This probably
broke the "do not notify me of seen notifications" feature.
Use cleaner syntax for query building.

Change-Id: Ie0e8d562aec94060c18eed989bb54a9484ccb5d3
2020-08-14 11:18:07 +00:00
Translation updater bot 7afe18f996 Localisation updates from https://translatewiki.net.
Change-Id: Ic394b009fe89406ed3d18bf7f705f9d7635f846d
2020-08-14 08:37:46 +02:00
jenkins-bot aa1f1801e4 Merge "Create and enforce a config setting for max subscriptions per user" 2020-08-13 17:03:05 +00:00
jenkins-bot 79f06475f3 Merge "Use more canonical (object)[] instead of new stdClass" 2020-08-13 11:03:26 +00:00
jenkins-bot 63e2dd4efa Merge "Remove calls to ParserOptions::setTidy()" 2020-08-13 10:19:17 +00:00
Thiemo Kreuz e5fead8b42 Use more canonical (object)[] instead of new stdClass
Both styles create the exact same object. Casting an array to an
object creates an stdClass object as well. The main benefit of this
syntax is that there is much less repetition. Everything is one
token instead of individual lines, where each line might contain a
typo.

Change-Id: Id43fa2c4b6bd5d9dbc60008427d4a9e14ae3811c
2020-08-13 09:58:14 +00:00
Thiemo Kreuz 9474b9c942 Remove Phan exceptions reported as unused
Change-Id: I89fa328e8878d64887518a3f49145b19ea599676
2020-08-13 09:25:05 +00:00
C. Scott Ananian 37261f977e Remove calls to ParserOptions::setTidy()
ParserOptions::setTidy() was already a no-op in MW 1.35, and
Echo already requires MW >= 1.35 in extension.json.
ParserOptions::setTidy() was deprecated in MW 1.35 and will be removed
in a future release.

Bug: T198214
Change-Id: I6a5378a42a6cf035296ad549525c25438803970a
2020-08-12 23:41:49 -04:00
Michael Holloway 15d48278be Create and enforce a config setting for max subscriptions per user
Creates a EchoPushMaxSubscriptionsPerUser config setting (default: 0)
that controls the maximum number of subscriptions a user may associate
with the user's central user ID.

The setting is enforced in EchoPush\SubscriptionManager::create().

To allow creating push subscriptions for development, set
$wgEchoPushMaxSubscriptionsPerUser to a positive integer value in
LocalSettings.php:

 $wgEchoPushMaxSubscriptionsPerUser = 10;

Bug: T259150
Change-Id: Ib97b6b6cbb8161dd75dad92c54b4fe4fff80c421
2020-08-12 17:58:11 -04:00
Translation updater bot 45700120f5 Localisation updates from https://translatewiki.net.
Change-Id: Ice4480441c501b0647881c495f0245265730c104
2020-08-12 08:19:13 +02:00
Translation updater bot 2f4e636ff1 Localisation updates from https://translatewiki.net.
Change-Id: I6a9efda643ebb7d870a3d5e0d19bfdafd87c84e0
2020-08-11 08:20:50 +02:00
jenkins-bot 8dd53eb8a8 Merge "Fix notification popup header always showing a scrollbar" 2020-08-10 23:38:53 +00:00
jenkins-bot 0d414cf1ec Merge "Add all ResourceLoaderModules using supported hook" 2020-08-10 20:21:21 +00:00
Thiemo Kreuz a5d35141f4 Fix notification popup header always showing a scrollbar
This issue was introduced in patch I41ad96b (T190397). The head
element is set to 44px height. However, the box-sizing is set
to border-box, which means these 44px include the 1px border at
the bottom. This leaves only 43px inside the head. The label is
meant to fit in there. Since the previous 44px don't fit, there
was always a scrollbar.

This could as well be fixed by changing the head to 45px.
However, this would make it different from the footer. I
believe both should have the same size for consistency.

Bug: T190397
Change-Id: Id0946d872a99fb8a1fbb33e6365fd78cd22eddd3
2020-08-10 14:59:06 +00:00
jenkins-bot f6e3ee52fd Merge "Remove obsolete property name from @var docs" 2020-08-10 11:46:27 +00:00
Thiemo Kreuz 9d988e50b4 Use more specific PHPUnit assertions for type checks
Change-Id: I22d3cddfb5d3d3f2ac49d075e885a3241b8360bc
2020-08-10 12:54:10 +02:00
Thiemo Kreuz d046adfd99 Remove obsolete property name from @var docs
Change-Id: I72faac7f0f88b0e3c4f145aa1def0acae0398488
2020-08-10 12:53:14 +02:00
Translation updater bot b2e643a47f Localisation updates from https://translatewiki.net.
Change-Id: I3d31aea0511741e8fd4f1f61941a07f3a279c1b2
2020-08-10 09:00:52 +02:00
Ammar Abdulhamid 95a0dff88c Add all ResourceLoaderModules using supported hook
PersonalUrls hooks is not meant to be used to add RL modules,
its documentation says it's meant to "alter the user-specific
navigation links (e.g. "my page, * my talk page, my contributions" etc)."

Echo is already using BeforePageDisplay hook to add modules, let's
now register all our modules via that

Bug: T259872
Change-Id: I12616a9947ea0e574287443361e2180c42e48d4b
2020-08-09 00:35:56 +01:00
Translation updater bot 2919e371c7 Localisation updates from https://translatewiki.net.
Change-Id: Ic83bb9382e52c62e29e16e9584dab97dd0951143
2020-08-07 08:22:55 +02:00
Translation updater bot 173311d796 Localisation updates from https://translatewiki.net.
Change-Id: I54e81da8933aca75738e82960f1a7ff71b19c018
2020-08-06 08:27:41 +02:00
Translation updater bot 9527958227 Localisation updates from https://translatewiki.net.
Change-Id: Iaef8f9b66a0bba52dd233b17aab38f847361b904
2020-08-05 08:22:27 +02:00
Translation updater bot 060ab77258 Localisation updates from https://translatewiki.net.
Change-Id: If9aeb60ba8c0525b3d03e0d074b84f3879cbfe10
2020-08-04 08:32:17 +02:00
jenkins-bot 6eee04f614 Merge "Fix layout of action buttons use display:flex" 2020-08-04 05:17:04 +00:00
Ed Sanders ee65e8b426 Remove text decoration on whole item widget when focused
Change-Id: I910b4cf3ef5503a4e38195cd588f327870e87d5e
2020-08-03 15:14:36 +01:00
Amir Sarabadani 532fdbf294 Stop using ResourceLoaderTestModules hook
This hook is deprecated and we should use QUnitTestModule in extension.json instead

Bug: T232875
Change-Id: I7b3e22856adc64ee36e0b696e2371bb9673e4899
2020-08-03 13:18:29 +02:00
Translation updater bot fd6ad873f9 Localisation updates from https://translatewiki.net.
Change-Id: I20be6d8ce6f55d6f3b7d5f4661681b59fd8c774e
2020-08-03 08:32:00 +02:00
Translation updater bot de284c56fc Localisation updates from https://translatewiki.net.
Change-Id: I63373bd4f25ab3498aebfbdf6b24e90b442448cb
2020-07-31 08:45:49 +02:00
Roan Kattouw bf1a124475 Mobile Special:Notifications: Properly close overlay on selection
Calling overlay.hide() doesn't invoke the onBeforeExit handler
(anymore? not sure if it ever did), so we have to call this handler
ourselves when manually closing the overlay.

Bug: T258954
Change-Id: Ife5926241c0b8473607c14df0f89c794728566dd
2020-07-30 15:31:01 -07:00
Translation updater bot db8b71f67f Localisation updates from https://translatewiki.net.
Change-Id: I4f3c3daeccd86e0416acf45689ce33c5b61835fa
2020-07-30 08:35:21 +02:00
Ed Sanders 5161a2c40e Fix layout of action buttons use display:flex
Bug: T258990
Change-Id: If0ece6e7ff6fef9abfcd4996a9158e86a5ffece0
2020-07-29 14:13:02 +01:00
Translation updater bot fa29360bfc Localisation updates from https://translatewiki.net.
Change-Id: I1ed75d8686121fa2bfa324504deca68bf649f448
2020-07-29 08:35:23 +02:00
jenkins-bot 95505cdfca Merge "Fix width of buttons-as-option-widgets" 2020-07-28 19:49:23 +00:00
jenkins-bot d3690320f6 Merge "Minerva popup: Fix scope of border-left/right rule" 2020-07-28 19:45:40 +00:00
jenkins-bot d8d0e52c03 Merge "Use user IDs, not User objects, for reverted-user-id" 2020-07-28 12:11:24 +00:00
jenkins-bot e504ed86a6 Merge "Merge in styles from Minerva" 2020-07-28 10:53:47 +00:00
Ed Sanders 6492fc380d Fix width of buttons-as-option-widgets
Change-Id: I7001815850a829a07c941e94548ea5a65d2fd1d5
2020-07-28 09:51:20 +00:00
Ed Sanders 344cccb5fa Minerva popup: Fix scope of border-left/right rule
We only hide side borders from top level notifications,
not notifications in bundles.

Change-Id: Iba680bda1dcd69b8f907413fbeec088e3ee1b43a
2020-07-28 09:51:15 +00:00
Translation updater bot 7c9c39d6b8 Localisation updates from https://translatewiki.net.
Change-Id: I4f2145777a1bff4720592b0931408f10b50c9838
2020-07-28 08:24:32 +02:00
Ed Sanders d43ceb8978 Merge in styles from Minerva
Drops some no-JS styles (.mw-echo-notification) which didn't do anything useful.

Bug: T258936
Change-Id: I72bedc3c3d633e8898c93d5e7d570b8ee7b6a1ff
2020-07-27 23:19:51 +00:00