Software /
code /
prosody-modules
Comparison
mod_privilege/mod_privilege.lua @ 5897:a88c43de648c
mod_privilege: Fix IQ privileges advertising for multiple namespaces
Before this fix, the namespaces element were wrongly nested.
author | nicoco <nicoco@nicoco.fr> |
---|---|
date | Fri, 22 Mar 2024 11:02:04 +0100 |
parent | 4994:cce12a660b98 |
comparison
equal
deleted
inserted
replaced
5896:8aec430ba205 | 5897:a88c43de648c |
---|---|
67 message:tag("perm", {access=perm, type=perms[perm]}):up() | 67 message:tag("perm", {access=perm, type=perms[perm]}):up() |
68 end | 68 end |
69 end | 69 end |
70 local iq_perm = perms["iq"] | 70 local iq_perm = perms["iq"] |
71 if iq_perm ~= nil then | 71 if iq_perm ~= nil then |
72 message:tag("perm", {access="iq"}) | 72 local perm_el = st.stanza("perm", {access="iq"}) |
73 for namespace, ns_perm in pairs(iq_perm) do | 73 for namespace, ns_perm in pairs(iq_perm) do |
74 local perm_type | 74 local perm_type |
75 if ns_perm.set and ns_perm.get then | 75 if ns_perm.set and ns_perm.get then |
76 perm_type = "both" | 76 perm_type = "both" |
77 elseif ns_perm.set then | 77 elseif ns_perm.set then |
79 elseif ns_perm.get then | 79 elseif ns_perm.get then |
80 perm_type = "get" | 80 perm_type = "get" |
81 else | 81 else |
82 perm_type = nil | 82 perm_type = nil |
83 end | 83 end |
84 message:tag("namespace", {ns=namespace, type=perm_type}) | 84 perm_el:tag("namespace", {ns=namespace, type=perm_type}):up() |
85 end | 85 end |
86 message:add_child(perm_el) | |
86 end | 87 end |
87 session.send(message) | 88 session.send(message) |
88 end | 89 end |
89 | 90 |
90 local function set_presence_perm_set(to_jid, perms) | 91 local function set_presence_perm_set(to_jid, perms) |