<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://hg.omfa.de/prosody-hg/</link>
    <language>en-us</language>

    <title>prosody-hg: plugins/muc/mod_muc.lua history</title>
    <description>plugins/muc/mod_muc.lua revision history</description>
    <item>
    <title>Merge 13.0-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/f5d415d54064/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[Merge 13.0-&gt;trunk]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 20 Jan 2026 11:13:31 +0000</pubDate>
</item>
<item>
    <title>mod_muc: Inherit mod_mam if globally loaded</title>
    <link>http://hg.omfa.de/prosody-hg/log/ce8ed69c4962/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Inherit mod_mam if globally loaded<br/>
<br/>
This will load mod_muc_mam for all MUC components if mod_mam is enabled<br/>
globally in the config file. This behaviour can be prevented by explicitly<br/>
disabling mod_mam and mod_muc_mam in the config, under the Component:<br/>
<br/>
Component &quot;conference.example.com&quot; &quot;muc&quot;<br/>
    -- Don't enable MAM on this MUC component:<br/>
    modules_disabled = { &quot;mam&quot;, &quot;muc_mam&quot; }]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 12 Jan 2026 17:46:32 +0000</pubDate>
</item>
<item>
    <title>MUC: Add basic &quot;GC3&quot; participant (affiliation) list fetch</title>
    <link>http://hg.omfa.de/prosody-hg/log/356c8ec22e9a/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add basic &quot;GC3&quot; participant (affiliation) list fetch<br/>
<br/>
RSM version currently held back until a planned restructuring of how we<br/>
store affiliations in MUC. This is because RSM needs a stable ordered list,<br/>
which we don't currently have.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 26 Jun 2025 15:17:57 +0100</pubDate>
</item>
<item>
    <title>MUC: Add get_occupant_id_from_jid() method, which works on real JIDs</title>
    <link>http://hg.omfa.de/prosody-hg/log/0e346f4d88ce/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add get_occupant_id_from_jid() method, which works on real JIDs<br/>
<br/>
This is useful to get the occupant ID of someone who is affiliated, but not<br/>
currently joined to the room.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 20 Jun 2025 18:55:39 +0100</pubDate>
</item>
<item>
    <title>MUC: Fix #1938 by reverting ac44bb7b7064</title>
    <link>http://hg.omfa.de/prosody-hg/log/c6010e1322aa/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Fix #1938 by reverting ac44bb7b7064]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 05 Jun 2025 21:13:51 +0200</pubDate>
</item>
<item>
    <title>MUC: Ensure room-creating join stanza includes nickname (fix #1934)</title>
    <link>http://hg.omfa.de/prosody-hg/log/3609d8fcad00/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Ensure room-creating join stanza includes nickname (fix #1934)<br/>
<br/>
Prevents a traceback when attempting to validate an absent nickname.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 19 May 2025 18:12:57 +0200</pubDate>
</item>
<item>
    <title>MUC: Factor out identification of join stanza</title>
    <link>http://hg.omfa.de/prosody-hg/log/9a2075e3e383/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Factor out identification of join stanza<br/>
<br/>
Makes it easier to extend this condition without the line growing too<br/>
long.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 19 May 2025 18:11:27 +0200</pubDate>
</item>
<item>
    <title>mod_muc: Integrate support for vcards/avatars on MUC rooms</title>
    <link>http://hg.omfa.de/prosody-hg/log/404d3644ac4a/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Integrate support for vcards/avatars on MUC rooms<br/>
<br/>
This was previously served by a community module (mod_vcard_muc).<br/>
<br/>
It can be disabled by setting `vcard_muc = false` in the config.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 17:08:46 +0000</pubDate>
</item>
<item>
    <title>MUC: Don't default component admins to being room owners</title>
    <link>http://hg.omfa.de/prosody-hg/log/3e6d5738ea09/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Don't default component admins to being room owners<br/>
<br/>
This change has various technical and social benefits. If ownership of a MUC<br/>
is really needed, it can be gained using the 'Set affiliation' ad-hoc command<br/>
or prosodyctl shell.<br/>
<br/>
Example client incompatibility with the old behaviour:<br/>
<br/>
  - https://github.com/monal-im/Monal/issues/1085]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 18 Jun 2024 15:08:30 +0100</pubDate>
</item>
<item>
    <title>MUC: Add per-room PM restriction functionality (thanks Wirlaburla)</title>
    <link>http://hg.omfa.de/prosody-hg/log/47e1df2d0a37/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add per-room PM restriction functionality (thanks Wirlaburla)<br/>
<br/>
Based on mod_muc_restrict_pm in prosody-modules d82c0383106a]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 23 May 2024 17:39:20 +0100</pubDate>
</item>
<item>
    <title>mod_muc: Switch to module:could() for some implicit access control checks</title>
    <link>http://hg.omfa.de/prosody-hg/log/d539cb48c6e9/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Switch to module:could() for some implicit access control checks]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Nov 2023 11:50:59 +0000</pubDate>
</item>
<item>
    <title>mod_muc: Allow guest users to list rooms by default</title>
    <link>http://hg.omfa.de/prosody-hg/log/8fb8a253f0a1/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Allow guest users to list rooms by default]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Nov 2023 11:12:57 +0000</pubDate>
</item>
<item>
    <title>mod_muc: Add :list-rooms permission</title>
    <link>http://hg.omfa.de/prosody-hg/log/939df56a51ba/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Add :list-rooms permission]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Nov 2023 11:10:38 +0000</pubDate>
</item>
<item>
    <title>mod_muc: Use enum config API for 'restrict_room_creation'</title>
    <link>http://hg.omfa.de/prosody-hg/log/37d67b5f9768/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Use enum config API for 'restrict_room_creation'<br/>
<br/>
This communicates the accepted values in case the config diverges from<br/>
them. Note that older documentation used an &quot;admin&quot; value behaving like<br/>
an alias to true, but this is no longer handled. Should it?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 21 Jul 2023 22:49:01 +0200</pubDate>
</item>
<item>
    <title>plugins: Use boolean config method in some places</title>
    <link>http://hg.omfa.de/prosody-hg/log/bb7177efbf41/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[plugins: Use boolean config method in some places<br/>
<br/>
Because it makes sense and improves feedback via logging]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 18 Jul 2023 12:38:16 +0200</pubDate>
</item>
<item>
    <title>mod_muc: Use enum option method for 'muc_room_default_presence_broadcast'</title>
    <link>http://hg.omfa.de/prosody-hg/log/ac44bb7b7064/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Use enum option method for 'muc_room_default_presence_broadcast']]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 18 Jul 2023 12:32:41 +0200</pubDate>
</item>
<item>
    <title>plugins: Use integer config API with interval specification where sensible</title>
    <link>http://hg.omfa.de/prosody-hg/log/50324f66ca2a/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[plugins: Use integer config API with interval specification where sensible<br/>
<br/>
Many of these fall into a few categories:<br/>
- util.cache size, must be &gt;= 1<br/>
- byte or item counts that logically can't be negative<br/>
- port numbers that should be in 1..0xffff]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 17 Jul 2023 01:38:54 +0200</pubDate>
</item>
<item>
    <title>plugins: Switch to :get_option_period() for time range options</title>
    <link>http://hg.omfa.de/prosody-hg/log/c8d949cf6b09/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[plugins: Switch to :get_option_period() for time range options<br/>
<br/>
Improves readability (&quot;1 day&quot; vs 86400) and centralizes validation.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 16 Jul 2023 20:49:33 +0200</pubDate>
</item>
<item>
    <title>core, plugins: Split prosody:user role into prosody:{guest,registered,member}</title>
    <link>http://hg.omfa.de/prosody-hg/log/082c7d856e61/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[core, plugins: Split prosody:user role into prosody:{guest,registered,member}<br/>
<br/>
This gives us more granular control over different types of user account.<br/>
Accounts registered by IBR get assigned prosody:registered by default, while<br/>
accounts provisioned by an admin (e.g. via prosodyctl shell) will receive<br/>
prosody:member by default.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 29 Jun 2023 15:36:13 +0100</pubDate>
</item>
<item>
    <title>plugins: Prefix module imports with prosody namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/74b9e05af71e/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[plugins: Prefix module imports with prosody namespace]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 24 Mar 2023 13:15:28 +0100</pubDate>
</item>
<item>
    <title>MUC: Add note about non-existant room method</title>
    <link>http://hg.omfa.de/prosody-hg/log/73db76cc6472/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add note about non-existant room method]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 20 Jan 2023 19:47:00 +0100</pubDate>
</item>
<item>
    <title>mod_muc: Better map restrict_room_creation to role permissions (behaviour change)</title>
    <link>http://hg.omfa.de/prosody-hg/log/a314f5bff9f0/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Better map restrict_room_creation to role permissions (behaviour change)<br/>
<br/>
With this change and 427dd01f0864, room creation is now effectively restricted<br/>
to parent-host users by default. This is a better default than previous<br/>
Prosody versions (where room creation was not restricted).<br/>
<br/>
The &quot;local&quot; option for restrict_room_creation is no longer used (any value<br/>
other than true/false won't change the default behaviour).<br/>
<br/>
restrict_room_creation = true will grant prosody:admin the ability to create<br/>
rooms.<br/>
<br/>
restrict_room_creation = false disables all permission checks.<br/>
<br/>
Anything between these two can be achieved using custom roles and permissions.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 29 Sep 2022 12:30:52 +0100</pubDate>
</item>
<item>
    <title>Switch to a new role-based authorization framework, removing is_admin()</title>
    <link>http://hg.omfa.de/prosody-hg/log/9061f9621330/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[Switch to a new role-based authorization framework, removing is_admin()<br/>
<br/>
We began moving away from simple &quot;is this user an admin?&quot; permission checks<br/>
before 0.12, with the introduction of mod_authz_internal and the ability to<br/>
dynamically change the roles of individual users.<br/>
<br/>
The approach in 0.12 still had various limitations however, and apart from<br/>
the introduction of roles other than &quot;admin&quot; and the ability to pull that info<br/>
from storage, not much actually changed.<br/>
<br/>
This new framework shakes things up a lot, though aims to maintain the same<br/>
functionality and behaviour on the surface for a default Prosody<br/>
configuration. That is, if you don't take advantage of any of the new<br/>
features, you shouldn't notice any change.<br/>
<br/>
The biggest change visible to developers is that usermanager.is_admin() (and<br/>
the auth provider is_admin() method) have been removed. Gone. Completely.<br/>
<br/>
Permission checks should now be performed using a new module API method:<br/>
<br/>
  module:may(action_name, context)<br/>
<br/>
This method accepts an action name, followed by either a JID (string) or<br/>
(preferably) a table containing 'origin'/'session' and 'stanza' fields (e.g.<br/>
the standard object passed to most events). It will return true if the action<br/>
should be permitted, or false/nil otherwise.<br/>
<br/>
Modules should no longer perform permission checks based on the role name.<br/>
E.g. a lot of code previously checked if the user's role was prosody:admin<br/>
before permitting some action. Since many roles might now exist with similar<br/>
permissions, and the permissions of prosody:admin may be redefined<br/>
dynamically, it is no longer suitable to use this method for permission<br/>
checks. Use module:may().<br/>
<br/>
If you start an action name with ':' (recommended) then the current module's<br/>
name will automatically be used as a prefix.<br/>
<br/>
To define a new permission, use the new module API:<br/>
<br/>
  module:default_permission(role_name, action_name)<br/>
  module:default_permissions(role_name, { action_name[, action_name...] })<br/>
<br/>
This grants the specified role permission to execute the named action(s) by<br/>
default. This may be overridden via other mechanisms external to your module.<br/>
<br/>
The built-in roles that developers should use are:<br/>
<br/>
 - prosody:user (normal user)<br/>
 - prosody:admin (host admin)<br/>
 - prosody:operator (global admin)<br/>
<br/>
The new prosody:operator role is intended for server-wide actions (such as<br/>
shutting down Prosody).<br/>
<br/>
Finally, all usage of is_admin() in modules has been fixed by this commit.<br/>
Some of these changes were trickier than others, but no change is expected to<br/>
break existing deployments.<br/>
<br/>
EXCEPT: mod_auth_ldap no longer supports the ldap_admin_filter option. It's<br/>
very possible nobody is using this, but if someone is then we can later update<br/>
it to pull roles from LDAP somehow.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 15 Jun 2022 12:15:01 +0100</pubDate>
</item>
<item>
    <title>MUC: Add method for getting the occupant id salt to allow reuse</title>
    <link>http://hg.omfa.de/prosody-hg/log/e9882c4c397f/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add method for getting the occupant id salt to allow reuse]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 05 Oct 2021 18:13:51 +0200</pubDate>
</item>
<item>
    <title>MUC: Allow modules a chance to act prior to room destruction</title>
    <link>http://hg.omfa.de/prosody-hg/log/f995d62044fa/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Allow modules a chance to act prior to room destruction]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 05 Dec 2021 14:49:06 +0100</pubDate>
</item>
<item>
    <title>MUC: Report number of live rooms to statsmanager</title>
    <link>http://hg.omfa.de/prosody-hg/log/6da8d9cb355d/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Report number of live rooms to statsmanager<br/>
<br/>
Should help inform on whether the cache size should be increased.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 28 Mar 2021 13:22:35 +0200</pubDate>
</item>
<item>
    <title>MUC: Merge mod_muc_occupant_id into a sub-module (thanks pep.!)</title>
    <link>http://hg.omfa.de/prosody-hg/log/9ce0a899ff07/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Merge mod_muc_occupant_id into a sub-module (thanks pep.!)]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 24 Nov 2020 10:38:56 +0000</pubDate>
</item>
<item>
    <title>MUC: Don't default room name to JID localpart (API breaking change)</title>
    <link>http://hg.omfa.de/prosody-hg/log/13eee48071c8/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Don't default room name to JID localpart (API breaking change)<br/>
<br/>
Behavior with turning empty name into localpart was originally introduced<br/>
in 711eb5bf94b4<br/>
<br/>
This has caused some problems for clients, making it difficult to<br/>
differentiate between a room actually named like the localpart from a<br/>
room without a name.<br/>
<br/>
Breaking:<br/>
The function signature of the :get_name() method changes from always<br/>
returning a string to optional string.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 29 Aug 2020 18:51:13 +0200</pubDate>
</item>
<item>
    <title>MUC: Add ad-hoc command setting affiliation in a room (fixes #1174)</title>
    <link>http://hg.omfa.de/prosody-hg/log/e4034f6668a5/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add ad-hoc command setting affiliation in a room (fixes #1174)<br/>
<br/>
This gives service admins a way to set an arbitrary affiliation in any<br/>
room. Enables various administrative use cases such as room ownership<br/>
reassignment or recovery.<br/>
<br/>
Reduces the need for the admins-as-owners feature, as this can be used<br/>
by admins to make themselves owner in any room when needed, instead of<br/>
being owners all the time.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 21 Mar 2020 00:00:50 +0100</pubDate>
</item>
<item>
    <title>MUC: Add initial hats support (broadcast only)</title>
    <link>http://hg.omfa.de/prosody-hg/log/76bb806cdd4b/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add initial hats support (broadcast only)<br/>
<br/>
Based on the currently-deferred XEP-0317. The protocol differs<br/>
a little (because XEP-0317 is incomplete), therefore currently<br/>
we use a custom namespace.<br/>
<br/>
The plan is to update and finish XEP-0317.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 18 Mar 2020 17:42:56 +0000</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>http://hg.omfa.de/prosody-hg/log/d1bfda983ffe/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 13 Feb 2020 14:27:42 +0000</pubDate>
</item>
<item>
    <title>mod_muc: Allow control over the server-admins-are-room-owners feature (see #1174)</title>
    <link>http://hg.omfa.de/prosody-hg/log/85585910d468/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Allow control over the server-admins-are-room-owners feature (see #1174)]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 13 Feb 2020 14:27:12 +0000</pubDate>
</item>
<item>
    <title>MUC: Indicate the component as origin of various errors where there's no room</title>
    <link>http://hg.omfa.de/prosody-hg/log/c1edeb9fe337/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Indicate the component as origin of various errors where there's no room<br/>
<br/>
A room that doesn't exist can't return an error, can it?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 26 Nov 2019 00:02:13 +0100</pubDate>
</item>
<item>
    <title>MUC: Indicate that the room is the origin of various errors where 'from' is an occupant JID</title>
    <link>http://hg.omfa.de/prosody-hg/log/2e36a54906e4/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Indicate that the room is the origin of various errors where 'from' is an occupant JID]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 25 Nov 2019 23:52:45 +0100</pubDate>
</item>
<item>
    <title>MUC: Strictly validate room JID on creation</title>
    <link>http://hg.omfa.de/prosody-hg/log/5611c939743a/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Strictly validate room JID on creation<br/>
<br/>
This should prevent any MUCs with invalid JID (according to current normalization routine)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 01 Nov 2019 22:08:38 +0100</pubDate>
</item>
<item>
    <title>MUC: Add controls for whose presence is broadcast (closes #1335)</title>
    <link>http://hg.omfa.de/prosody-hg/log/7b602e13c3b6/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add controls for whose presence is broadcast (closes #1335)<br/>
<br/>
Committed by Zash]]></description>
    <author>&#76;&#97;&#110;&#99;&#101;&#32;&#83;&#116;&#111;&#117;&#116;&#32;&#60;&#108;&#97;&#110;&#99;&#101;&#115;&#116;&#111;&#117;&#116;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 20 Oct 2019 21:58:16 +0200</pubDate>
</item>
<item>
    <title>MUC: Move check for explicit room join earlier in room creation flow</title>
    <link>http://hg.omfa.de/prosody-hg/log/0f43b901c854/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Move check for explicit room join earlier in room creation flow]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 27 Nov 2018 17:01:47 +0100</pubDate>
</item>
<item>
    <title>MUC: Use defaults from config in create_room() if no config provided</title>
    <link>http://hg.omfa.de/prosody-hg/log/4d3ab7153153/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Use defaults from config in create_room() if no config provided]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 15 Nov 2018 10:25:48 +0000</pubDate>
</item>
<item>
    <title>MUC: Add support for registering with a MUC, including reserving a nickname as per XEP-0045</title>
    <link>http://hg.omfa.de/prosody-hg/log/f9a83aca4421/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add support for registering with a MUC, including reserving a nickname as per XEP-0045]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 03 Sep 2018 12:26:25 +0100</pubDate>
</item>
<item>
    <title>MUC: Add support for storing additional data with MUC affiliations</title>
    <link>http://hg.omfa.de/prosody-hg/log/b86c2e135797/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add support for storing additional data with MUC affiliations<br/>
<br/>
XEP-0045 registration provides examples of registering a nickname<br/>
and various other details. This also allows modules to store arbitrary<br/>
private data about an affiliated entity.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Mon, 03 Sep 2018 12:18:13 +0100</pubDate>
</item>
<item>
    <title>MUC: Normalize indentation</title>
    <link>http://hg.omfa.de/prosody-hg/log/6dc1aeefa876/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Normalize indentation]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 22 Aug 2018 14:50:07 +0200</pubDate>
</item>
<item>
    <title>MUC: Fix traceback when failing to restore a room</title>
    <link>http://hg.omfa.de/prosody-hg/log/1403c64ca140/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Fix traceback when failing to restore a room<br/>
<br/>
When a room exists in the DB but cannot be loaded (e.g. due to max_rooms<br/>
or a pre-restore handler) restore_room()/get_room_from_jid() returns false.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 17 Aug 2018 08:12:58 +0100</pubDate>
</item>
<item>
    <title>MUC: Pass missing argument to log message</title>
    <link>http://hg.omfa.de/prosody-hg/log/5192adc5c47f/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Pass missing argument to log message]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 17 Aug 2018 00:31:24 +0200</pubDate>
</item>
<item>
    <title>MUC: Allow destruction of tombstones (eg via telnet or adhoc command)</title>
    <link>http://hg.omfa.de/prosody-hg/log/04a284c5b88b/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Allow destruction of tombstones (eg via telnet or adhoc command)<br/>
<br/>
Otherwise this just updates the timestamp, which is probably the<br/>
opposite of what the user wanted]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 03 Aug 2018 22:25:16 +0200</pubDate>
</item>
<item>
    <title>MUC: Split long lines [luacheck strict]</title>
    <link>http://hg.omfa.de/prosody-hg/log/ce57c69a20e2/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Split long lines [luacheck strict]]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 03 Aug 2018 17:48:41 +0200</pubDate>
</item>
<item>
    <title>mod_muc: Fire event when room is (and about to be) restored</title>
    <link>http://hg.omfa.de/prosody-hg/log/c040c358d6c0/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Fire event when room is (and about to be) restored]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 03 Aug 2018 13:44:30 +0100</pubDate>
</item>
<item>
    <title>mod_muc: Add comment</title>
    <link>http://hg.omfa.de/prosody-hg/log/9e339197c724/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[mod_muc: Add comment]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 03 Aug 2018 13:43:47 +0100</pubDate>
</item>
<item>
    <title>MUC: Add some comments clarifying methods</title>
    <link>http://hg.omfa.de/prosody-hg/log/68386f7b9fc9/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add some comments clarifying methods]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 17 Jul 2018 10:35:33 +0100</pubDate>
</item>
<item>
    <title>MUC: Add new iteration methods, all_rooms/live_rooms to eventually replace each_room</title>
    <link>http://hg.omfa.de/prosody-hg/log/f5c43e829d93/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add new iteration methods, all_rooms/live_rooms to eventually replace each_room]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 17 Jul 2018 10:29:16 +0100</pubDate>
</item>
<item>
    <title>MUC: Rename variable for consistency with other code that uses the term 'live'</title>
    <link>http://hg.omfa.de/prosody-hg/log/5870a0a6d4b6/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Rename variable for consistency with other code that uses the term 'live']]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 17 Jul 2018 10:01:19 +0100</pubDate>
</item>
<item>
    <title>MUC: Return 'gone' error for destroyed rooms in other cases than attempted join</title>
    <link>http://hg.omfa.de/prosody-hg/log/c58be87e62d0/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Return 'gone' error for destroyed rooms in other cases than attempted join<br/>
<br/>
Lock expiry -&gt; Reset<br/>
Admin wants to join -&gt; Reset<br/>
Still locked -&gt; cancel, gone<br/>
Don't return error in response to an error]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 16 Jul 2018 12:19:19 +0200</pubDate>
</item>
<item>
    <title>MUC: Add sections in room config form</title>
    <link>http://hg.omfa.de/prosody-hg/log/173c0e16e704/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add sections in room config form]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 13 Jul 2018 15:47:08 +0100</pubDate>
</item>
<item>
    <title>MUC: Include redirect in 'gone' error for destroyed rooms</title>
    <link>http://hg.omfa.de/prosody-hg/log/d780c10709c1/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Include redirect in 'gone' error for destroyed rooms]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 11 Jul 2018 12:05:06 +0200</pubDate>
</item>
<item>
    <title>MUC: Send an 'gone' error instead of unavailable + &lt;destroyed&gt;</title>
    <link>http://hg.omfa.de/prosody-hg/log/73320e33762d/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Send an 'gone' error instead of unavailable + &lt;destroyed&gt;<br/>
<br/>
List discussion here:<br/>
https://mail.jabber.org/pipermail/standards/2018-July/035228.html]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 11 Jul 2018 11:50:44 +0200</pubDate>
</item>
<item>
    <title>MUC: Allow an admin to recreate destroyed rooms</title>
    <link>http://hg.omfa.de/prosody-hg/log/946ae1181c57/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Allow an admin to recreate destroyed rooms]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 11 Jul 2018 03:38:01 +0200</pubDate>
</item>
<item>
    <title>MUC: Add support for storing a tombstone for destroyed rooms (#1182)</title>
    <link>http://hg.omfa.de/prosody-hg/log/dc606dc89f44/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Add support for storing a tombstone for destroyed rooms (#1182)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 11 Jul 2018 03:37:57 +0200</pubDate>
</item>
<item>
    <title>MUC: Remove room state on successful restoration from disk</title>
    <link>http://hg.omfa.de/prosody-hg/log/a54bcc76cd22/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Remove room state on successful restoration from disk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 11 Jul 2018 03:27:18 +0200</pubDate>
</item>
<item>
    <title>MUC: Purge saved room state when deleting a room</title>
    <link>http://hg.omfa.de/prosody-hg/log/295faf1522f9/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Purge saved room state when deleting a room]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 11 Jul 2018 03:27:02 +0200</pubDate>
</item>
<item>
    <title>MUC: Log a debug message when a non-persistent room becomes empty and is destroyed</title>
    <link>http://hg.omfa.de/prosody-hg/log/3c5ddd53fe50/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Log a debug message when a non-persistent room becomes empty and is destroyed]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 11 Jul 2018 02:25:07 +0200</pubDate>
</item>
<item>
    <title>MUC: Flag rooms being destroyed (fixes #887)</title>
    <link>http://hg.omfa.de/prosody-hg/log/695904638cfa/plugins/muc/mod_muc.lua</link>
    <description><![CDATA[MUC: Flag rooms being destroyed (fixes #887)]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 10 Jul 2018 21:10:12 +0200</pubDate>
</item>

  </channel>
</rss>
