# HG changeset patch # User Kim Alvefur # Date 1748181134 -7200 # Node ID 9c48d555c8a669c33be202eb1a173b80683d6e0e # Parent 318a851cb415c4a2fa003049c3937607d4bda922# Parent 0dd82a8f19131ed6615cd5287be422e6eb0742bb Merge 13.0->trunk diff -r 318a851cb415 -r 9c48d555c8a6 plugins/muc/restrict_pm.lib.lua --- a/plugins/muc/restrict_pm.lib.lua Sat May 24 15:57:29 2025 +0200 +++ b/plugins/muc/restrict_pm.lib.lua Sun May 25 15:52:14 2025 +0200 @@ -11,15 +11,19 @@ participants = "participant"; moderators = "moderator"; members = "affiliated"; + anyone = "visitor"; }; local function get_allow_pm(room) local val = room._data.allow_pm; - return compat_map[val] or val or "visitor"; + val = compat_map[val] or val or "visitor"; + if not (val == "affiliated" or valid_roles[val]) then return "visitor"; end + return val; end local function set_allow_pm(room, val) if get_allow_pm(room) == val then return false; end + if not (val == "affiliated" or valid_roles[val]) then return false end room._data.allow_pm = val; return true; end @@ -93,8 +97,10 @@ local pmval = get_allow_pm(room); if pmval ~= "none" then - if pmval == "affiliated" and room:get_affiliation(from_occupant.bare_jid) then - return; -- Allow from affiliated users + if pmval == "affiliated" then + if room:get_affiliation(from_occupant.bare_jid) then + return; -- Allow from affiliated users + end elseif valid_roles[from_occupant.role] >= valid_roles[pmval] then module:log("debug", "Allowing PM: %s(%d) >= %s(%d)", from_occupant.role, valid_roles[from_occupant.role], pmval, valid_roles[pmval]); return; -- Allow from a permitted role