aboutsummaryrefslogtreecommitdiffstats
path: root/util/pubsub.lua
Commit message (Collapse)AuthorAgeFilesLines
* Backed out changeset 27d800ddc3b0 (see below)Matthew Wild2018-08-181-2/+2
| | | | | | | | | It's uncertain whether item not existing should be success and nil, or fail with an error. XEP-0060's "fetch most recent item" actually fetches a list of up to N items. N here is a maximum, not a minimum. The feeling is that no items is simply an empty list, not a failure of the operation.
* util.pubsub: get_last_item(): Fail with item-not-found if no item yet publishedMatthew Wild2018-08-181-2/+2
|
* util.pubsub: get_last_item(): Return error if node does not existMatthew Wild2018-08-181-0/+6
|
* pubsub.lib, util.pubsub: Move precondition checks to util.pubsubMatthew Wild2018-08-181-2/+17
|
* util.pubsub: Add comment to clarify return valuesMatthew Wild2018-08-181-0/+1
|
* util.pubsub: Pass "retract" as the type of such broadcastsKim Alvefur2018-08-161-1/+1
| | | | | | | | This moves some XEP-0060 awkwardness out of util.pubsub and into mod_pubsub A retraction is broadcast in an <items> container, whereas most other kinds of broadcasts are in a container with a name matching the 'kind' attribute.
* util.pubsub: Allow outcasts to get their subscription statusMatthew Wild2018-08-121-0/+2
|
* util.pubsub: For open nodes, default affiliation is "member"Matthew Wild2018-08-091-1/+1
| | | | | | | | | This allows entities without an explicit affiliation to retrieve items, which is specified by the XEP. Table 6: "Node Access Models" states that for 'open' nodes, "any entity may retrieve items from the node". See also discussion at: https://mail.jabber.org/pipermail/standards/2018-August/035320.html
* mod_pep, util.pubsub: Rename restricted->outcast, none->member and add new ↵Matthew Wild2018-08-081-2/+24
| | | | 'none' affiliation to better match XEP-0060
* mod_pubsub, mod_pep, util.pubsub: Move capability definitions into ↵Matthew Wild2018-08-081-1/+77
| | | | util.pubsub to avoid duplication
* util.pubsub: Include node defaults from current service objectKim Alvefur2018-08-071-0/+3
|
* util.pubsub: Re-check all subscriptions on access_model change, ↵Kim Alvefur2018-08-061-0/+12
| | | | unsubscribing those no longer allowed
* util.pubsub: Add support for publish_model config optionMatthew Wild2018-08-061-1/+14
|
* util.pubsub: Apply defaults metatable before config check (thanks pep.)Kim Alvefur2018-08-051-1/+3
| | | | | Makes it so that the callback sees the default if it’s not in the form, which makes it easier to validate.
* util.pubsub: Add method to retrieve node configurationMatthew Wild2018-08-041-0/+21
|
* util.pubsub: Use service.node_defaults in case config.node_defaults was not ↵Matthew Wild2018-08-041-1/+1
| | | | provided (thanks jonasw)
* util.pubsub: Tweak default affiliation of access models (fixes failing test)Matthew Wild2018-08-041-2/+2
| | | | | | | | | | | 11:56:59 MattJ> Someone who has the ability to subscribe does not have the "subscriber" affiliation until they actually subscribe, they just have the normal "none" affiliation (which has permission to subscribe) 11:58:05 MattJ> However if the access model is whitelist, then anyone not on the whitelist has an implicit negative affiliation, which we don't currently have, so I just named "restricted" 11:58:16 MattJ> Since it doesn't exist in any code yet, it has no permissions
* util.pubsub: Look for a configured callback for more complicated access modelsKim Alvefur2018-08-041-0/+10
|
* util.pubsub: Add initial support for configurable access modelsKim Alvefur2018-08-041-4/+17
|
* util.pubsub: Add support for a config validation functionMatthew Wild2018-08-011-0/+7
|
* util.pubsub: Support for returning *all* subscriptionsKim Alvefur2018-07-131-21/+31
|
* util.pubsub: Return error code known by pubsub.lib if persistent creation failsKim Alvefur2018-07-011-1/+1
|
* util.pubsub: Store subscription changesKim Alvefur2018-07-011-0/+22
|
* util.pubsub: Persistence on affiliation changeKim Alvefur2018-07-011-0/+10
|
* util.pubsub: Remove node from persistent storage on deletionKim Alvefur2018-07-011-0/+13
|
* util.pubsub: Persist nodes on configuration changeKim Alvefur2018-07-011-5/+14
|
* util.pubsub: Fix applying per service node defaults when loading from nodestoreKim Alvefur2018-07-011-7/+7
|
* util.pubsub: Fix typoKim Alvefur2018-06-261-1/+1
|
* util.pubsub: Normalize JID used as affiliationKim Alvefur2018-06-261-0/+1
| | | | | XEP-0060 4.1 Affiliations > All affiliations MUST be based on a bare JID
* util.pubsub: Also check for affiliation set on bare JIDKim Alvefur2018-05-221-1/+2
| | | | | This fixes eg publishing from a full JID when the affiliation has been set on the bare JID, as would be common in XMPP.
* util.pubsub: Pass node and service objects to broadcaster to allow eg config ↵Kim Alvefur2018-05-211-4/+4
| | | | access
* util.pubsub: Add a default/fallback JID normalization functionKim Alvefur2018-05-201-0/+1
|
* util.pubsub: Don't record the superuser as owner on creationKim Alvefur2018-05-201-6/+8
| | | | | | No need to be set as owner, it has all privileges anyways. Since it’s a boolean instead of a string, its presence may cause weirdness in other code expecting all affiliations to be string JIDs.
* util.pubsub: Allow setting a callback for validating items to be publishedKim Alvefur2018-03-211-0/+4
|
* util.pubsub: Support a 'nodestore' for persisting nodes (same API as kv stores)Matthew Wild2018-02-021-1/+41
|
* util.pubsub: Move service methods object creation (just code reorganisation)Matthew Wild2018-02-021-2/+6
|
* util.pubsub: For clarity, split config tables from their metatablesMatthew Wild2018-02-011-6/+9
|
* util.pubsub: Recreate itemstore if persist_items changes or resize it if ↵Kim Alvefur2017-11-091-7/+7
| | | | max_items changes
* util: Various minor changes to please [luacheck]Kim Alvefur2017-11-101-12/+0
|
* util.pubsub: Add method for retreiving the last item (useful for sending on ↵Kim Alvefur2017-11-071-0/+9
| | | | subscribe)
* util.pubsub: Return an empty list if specific item asked for does not exist ↵Kim Alvefur2017-10-181-1/+1
| | | | (thanks jonasw)
* pubsub: Distinguish internal representation of node config from XEP-0060 ↵Kim Alvefur2017-10-171-2/+3
| | | | form (util.pubsub should be protocol-agnostic)
* util.pubsub: Remove inclusion of publisherKim Alvefur2017-10-161-3/+0
| | | | | util.pubsub should stay agnostic of what data types are published and this depended on util.stanza
* util.pubsub: Return item-not-found if a single item is requested, and not thereKim Alvefur2017-10-101-1/+5
|
* util.pubsub: Clear data on node deletionKim Alvefur2017-10-091-0/+3
|
* util.pubsub: Clear data store if it supports being cleared, otherwise fall ↵Kim Alvefur2017-10-081-1/+5
| | | | back to creating a new one
* util.pubsub: Don't record publisher when superuser privileges are used (eg ↵Kim Alvefur2017-07-291-1/+3
| | | | by modules)
* util.pubsub: Catch overriden id from storageKim Alvefur2017-04-261-0/+1
|
* util.pubsub: Add the publisher as an attribute in the item element.Emmanuel Gil Peyrot2017-04-021-0/+1
| | | | | This makes the backend able to obtain the publisher without changing the API.
* util.pubsub: Add a node parameter to itemstore().Emmanuel Gil Peyrot2017-04-021-4/+4
| | | | | This allows the backend to know the node name, when it needs to differentiate it at storage for example.