Commit graph

19 commits

Author SHA1 Message Date
Michael Holloway 5eb4c6cd1d Add notifiertypes parameter to ApiEchoNotifications
Previously, ApiEchoNotifications returned only events which were
enabled for the `web` notifier type. With this change, the notifier
type or types to consider can be specified by argument to the new
`notifiertypes` parameter.

This change is required so that the apps can request notification
content from the API for push notifications.

Bug: T287909
Change-Id: I2d1155e113f2defb0f02416a7a659c3ee162d3a6
2021-08-17 10:27:14 -04:00
mbsantos 2f21c2649e push: document description of topic parameter
Bug: T285573
Change-Id: I875681ca3bdfe006d68b15f3cffc0089c9677ef1
2021-07-01 16:10:00 +02:00
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
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
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
Michael Holloway a3674974f1 Add push subscription management
Adds DB tables for storing push subscriptions, some DB interaction code
for retrieving them within MediaWiki, and a set of API modules for
managing them from the outside world.

When testing this patch, be sure to run maintenance/update.php to create
the new tables, and set $wgEchoEnablePush = true in LocalSettings.php
to enable the API new API module.

N.B. The current DB schema is centered on app push subscriptions. Web
push subscriptions require slightly different handling, since they are
provided by browsers as a JSON blob rather than a token string. How to
handle web push subscriptions is a question we can defer until the time
comes to add web push support.

Subscription data is stored in the echo_push_subscription table, with
provider names normalized into the echo_push_provider table. We expect to
be looking up subscriptions by central user ID, so that column is indexed.
The subscription data also includes a column to store SHA256 digests of
the subscriber tokens. This is for use as a unique key constraint, since
we expect every push token to be univerally unique, and the token values
themselves may be too large to reasonably index in MySQL.

Bug: T252899
Change-Id: I3928761b3fba12e54ff4850e9a05c68ec7772f62
2020-06-02 13:40:00 -04:00
Roan Kattouw 28f432b150
Add dynamic secondary action to mute/unmute page-linked notifications
Also adds an API module for muting and unmuting pages (and users).

Bug: T46787
Bug: T115264
Change-Id: Icf4e4bfa9fd7fa27b4c40892e3d5ce000eb22d5a
2020-05-27 15:20:08 +02:00
Translation updater bot bb47d976ed Localisation updates from https://translatewiki.net.
Change-Id: I10b912d8b143409270cb57c6f6b55c6a0d1c97c8
2020-04-07 08:39:52 +02:00
Umherirrender 5c1de126cb Set apihelp message for wikis parameter of echomarkread
It is set by a trait, but each module using the trait defines its own
message for it, so adding a new one for this module

Bug: T238520
Change-Id: Id247a40296960f3c95d3fc95bd046113e07dc0ff
2019-11-18 20:12:24 +01:00
Translation updater bot b3dd092832 Localisation updates from https://translatewiki.net.
Change-Id: I4ff6b767edf3f9c806dcc1e49a0f60a4e07497a9
2018-05-17 22:19:37 +02:00
Translation updater bot a975f5a58d Localisation updates from https://translatewiki.net.
Change-Id: I9d2a5b28f5f052dbc5a9bb875477af6eedb23301
2017-07-20 22:41:33 +02:00
Ela 07cac5c9f7 New Article Reminder API
This will be used to submit a new article reminder, for a specified date.
The delay is not implemented yet.

Bug: T166973
Bug: T167450
Change-Id: I773bbe98e781957912350c481c850b3263cb1821
2017-07-19 11:07:22 +00:00
Brad Jorsch afd052f2ac API: Split description messages into summary + additional text
See MediaWiki core patch I778bab2b

Change-Id: I7b246e8998f918b15923cd17b941c2cc9d0a30a0
2017-06-13 13:27:48 -04:00
Translation updater bot 61b8b2a757 Localisation updates from https://translatewiki.net.
Change-Id: I84f9f3ad99635ae4e4f37f5b90e4a881f1c31f0f
2017-04-04 22:39:53 +02:00
Stephane Bisson 8524471820 Remove 'text' as a valid notifications output format
The ability to format notifications as text
has been removed in Ic5712c4ce265b6faabce7a4028b4294fe3c73f18.

Bug: T155874
Change-Id: I72cadbaaa01414ce46315a618da0cb46241ad93e
2017-01-25 10:33:44 -05:00
Translation updater bot 5fc7d9eabe Localisation updates from https://translatewiki.net.
Change-Id: I06d9527d421fa154b9e9f78d1b543454314189bb
2017-01-25 14:26:15 +01:00
Translation updater bot 147b65dd1e Localisation updates from https://translatewiki.net.
Change-Id: Ib0b6f86566bf07768292af62a46f947a70d0c7d4
2017-01-04 22:31:34 +01:00
Translation updater bot 5291e5848b Localisation updates from https://translatewiki.net.
Change-Id: I8c9cd0cbcb08736f9eaa1982af311d87c0d615bd
2017-01-01 09:55:47 +01:00
Amire80 abc76c9e08 Split API messages to a separate file
There are many API messages in Echo, so to make it easier
for translators, they are now in a separate group.
This is similar in Flow.

Must be merged along with the translatewiki change at
Iecedfe4cb9dc8e62a446a3e1c415a79e116ca27e

Change-Id: I1d3baea708107a7f15bf19671f7386eaf7e33a1b
2016-12-16 15:27:03 +00:00