aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/muc/muc.lib.lua
Commit message (Collapse)AuthorAgeFilesLines
* Merge 0.11->trunkKim Alvefur2021-07-231-1/+1
|\
| * MUC: Fix logic for access to affiliation lists0.11.10Kim Alvefur2021-07-221-1/+1
| | | | | | | | | | | | Fixes https://prosody.im/security/advisory_20210722/ Backs out 4d7b925652d9
* | MUC: Allow overriding occupant object from groupchat message eventKim Alvefur2021-03-251-4/+9
| | | | | | | | | | | | | | Use case: Enable module that provides a virtual occupant object for bots Before, if there is no occupant then either some other part of MUC would reject the message or `occupant.nick` would have caused an error.
* | MUC: Reject probes from non-occupantsJC Brand2020-10-021-12/+21
| | | | | | | | Also test for self-probes
* | MUC: Add support for presence probes (fixes #1535)JC Brand2020-04-191-23/+84
| | | | | | | | | | | | | | | | | | | | | | The following patch allows Prosody to respond to `probe` presences and send out the probed occupant's current presence. This is based on line 17.3 in XEP-0045: A MUC service MAY handle presence probes sent to the room JID <room@service> or an occupant JID <room@service/nick> (e.g, these might be sent by an occupant's home server to determine if the room is still online or to synchronize presence information if the user or the user's server has gone offline temporarily or has started sharing presence again, as for instance when Stanza Interception and Filtering Technology (XEP-0273) is used).
* | Merge 0.11->trunkMatthew Wild2020-12-151-2/+2
|\|
| * MUC: Fix logic bug causing unnecessary presence to be sent, fixes #1615 ↵Matthew Wild2020-12-151-2/+2
| | | | | | | | (thanks damencho)
* | Merge 0.11->trunkKim Alvefur2020-10-071-2/+2
|\|
| * MUC: Preserve disco 'node' attribute (or lack thereof) in response (fix ↵Kim Alvefur2020-10-071-2/+2
| | | | | | | | #1595) (thanks lessthan3)
* | mod_muc: let event handlers modify cloned presenceJC Brand2020-04-221-1/+1
| | | | | | | | Updates #1533
* | Fixes #1533 Hats don't get sent out to own MUC userJC Brand2020-04-221-0/+1
| |
* | Merge 0.11->trunkMatthew Wild2020-04-231-1/+1
|\|
| * MUC: Always include 'affiliation'/'role' attributes, defaulting to 'none' if nilMatthew Wild2020-04-231-1/+1
| |
| * MUC: Persist affiliation_data in new MUC format!Matthew Wild2020-03-121-0/+1
| |
* | MUC: Add new event 'muc-build-occupant-presence' for plugins to extend ↵Matthew Wild2020-04-111-0/+2
| | | | | | | | occupant presence
* | MUC: Persist affiliation_data in new MUC format!Matthew Wild2020-03-121-0/+1
| |
* | MUC: Switch to new storage format by defaultMatthew Wild2020-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Changing the default setting of `new_muc_storage_format` from false to true. The code supports reading both formats since 0.11, but servers with MUCs stored using the new format will not be able to downgrade to 0.10 or earlier. The new format is clearer (less nesting for the most commonly-accessed data), and combined with the new map-store methods, allows for some operations to become more efficient (such as finding out which MUCs on a service a given user is affiliated with).
* | MUC: Support for broadcasting unavailable presence for affiliated offline usersMatthew Wild2020-03-121-2/+23
| | | | | | | | Activated when muc#roomconfig_presencebroadcast includes the "none" role.
* | MUC: Pass previous role to :publicise_occupant_status() when destroying a MUCMatthew Wild2020-03-121-3/+4
| |
* | MUC: Pass previous role to :publicise_occupant_status() whenever possibleMatthew Wild2020-03-121-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently there is what amounts to a hack in presence_broadcast.lib.lua to make it always broadcast presence with roles of "none". This is to ensure that if you previously saw available presence for someone, you will also see the unavailable presence (which always has role="none"). The correct approach is to take into account what the previous role was ( i.e. answer the question: "Was the available presence for this occupant a role for which presence broadcast is enabled?). The logic is already in place to do this correctly, but most call sites do not provide the previous role (prev_role argument) of the occupant, which causes it to not be used. In its place the hack to always broadcast presence of role="none" has allowed things to continue to work. The intention is that a subsequent commit will remove the unconditional broadcast of role="none".
* | mod_muc: add muc-private-message eventMaxime “pep” Buquet2020-02-241-1/+3
| | | | | | | | | | This seems to be the one place handling MUC-PMs. This event is added so that plugins (such as muc_occupant_id) can edit them without having to redo the work.
* | MUC: Make note to handle configuration form errors [luacheck]Kim Alvefur2019-12-231-0/+2
| |
* | MUC: Remove some unused variables [luacheck]Kim Alvefur2019-12-231-4/+4
| |
* | MUC: Add missing reference to room (thanks buildbot) [luacheck]Kim Alvefur2019-11-261-0/+1
| |
* | MUC: Indicate that the room is the origin of various errors where 'from' is ↵Kim Alvefur2019-11-251-13/+16
| | | | | | | | an occupant JID
* | Merge 0.11->trunkKim Alvefur2019-11-231-37/+100
|\ \ | |/ |/|
| * MUC: Enforce strict resourceprep on nicknames (bye bye robot face)Kim Alvefur2019-09-231-0/+16
| |
| * MUC: Add controls for whose presence is broadcast (closes #1335)Lance Stout2019-10-201-5/+18
| | | | | | | | Committed by Zash
| * Merge 0.11-trunkKim Alvefur2019-09-291-0/+1
| |\
| * \ Merge 0.11->trunkKim Alvefur2019-08-211-0/+1
| |\ \
| * | | MUC: Reflow event tables to improve readabilityKim Alvefur2019-06-191-4/+20
| | | | | | | | | | | | | | | | Also makes it easier to read diffs of added fields.
| * | | MUC: Update error message for consistencyMatthew Wild2019-03-181-1/+1
| | | |
| * | | MUC: Fire an event to allow affecting decision of whether to allow a role changeKim Alvefur2019-02-241-0/+12
| | | |
| * | | MUC: Factor out role change permission check into its own methodKim Alvefur2019-02-241-18/+27
| | | | | | | | | | | | | | | | | | | | | | | | I would like to invert this logic so that it checks if the role change is allowed instead of checking if it is not allowed as it does now, in order to make it easier to understand.
| * | | Merge 0.11->trunkMatthew Wild2019-02-041-3/+3
| |\ \ \
| * | | | MUC: Rename import to avoid name clash [luacheck]Kim Alvefur2019-01-061-2/+2
| | | | |
| * | | | MUC: add ID to message if no ID is presentJonas Wielicki2019-01-061-0/+4
| | | | |
| * | | | Merge 0.11->trunkKim Alvefur2018-12-201-1/+1
| |\ \ \ \
| * \ \ \ \ Merge 0.11->trunkMatthew Wild2018-12-191-1/+1
| |\ \ \ \ \
| * | | | | | MUC: Move check for explicit room join earlier in room creation flowKim Alvefur2018-11-271-7/+0
| | | | | | |
| * | | | | | Merge 0.11->trunkKim Alvefur2018-11-251-0/+1
| |\ \ \ \ \ \
| * | | | | | | MUC: Fix spelling in commentsKim Alvefur2018-11-101-5/+5
| | | | | | | |
* | | | | | | | MUC: Keep role across nickname change (fixes #1466)Kim Alvefur2019-11-231-0/+3
| |_|_|_|_|_|/ |/| | | | | |
* | | | | | | MUC: Strip tags with MUC-related namespaces from private messages (fixes #1427)Kim Alvefur2019-09-291-0/+1
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | Prevents duplication since it adds another <{muc#user}x> here
* | | | | | MUC: Advertise XEP-0410 supportKim Alvefur2019-07-301-0/+1
| |_|_|_|/ |/| | | | | | | | | | | | | | Unsure if the feature was in the XEP at the time of 7c1cdf5f9f83
* | | | | MUC: Add error message to error bounces when not joined to roomMatthew Wild2019-02-041-3/+3
| |_|_|/ |/| | |
* | | | MUC: Allow changing data attached to an only owner (fixes #1273)Kim Alvefur2018-12-201-1/+1
| |_|/ |/| | | | | | | | | | | | | | | | | This previously prevented a single owner from setting their own nickname via admin query. The form method uses `true` as actor so it bypasses this check.
* | | MUC: Adjust priorities of muc-get-default-role handlers (fixes #1272)Matthew Wild2018-12-191-1/+1
| |/ |/|
* | MUC: Fix traceback on muc#admin query with missing <item> child (#1242)Kim Alvefur2018-11-251-0/+1
|/ | | | Caused by a missing return statement introduced in 494938dec5d8
* MUC: Allow anyone read access to all affiliation lists in non-anonymous ↵Kim Alvefur2018-11-091-1/+1
| | | | rooms (fixes #1230)