Mercurial > prosody-modules
comparison mod_remote_roster/mod_remote_roster.lua @ 316:c86fc337d56f
mod_remote_roster: Let component set roster item subscription.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Tue, 11 Jan 2011 18:13:23 +0500 |
parents | dead242beee3 |
children | 295ae44b8a01 |
comparison
equal
deleted
inserted
replaced
315:dead242beee3 | 316:c86fc337d56f |
---|---|
91 end | 91 end |
92 else | 92 else |
93 session.send(st.error_reply(stanza, "modify", "item-not-found")); | 93 session.send(st.error_reply(stanza, "modify", "item-not-found")); |
94 end | 94 end |
95 else | 95 else |
96 local subscription = item.attr.subscription; | |
97 if subscription ~= "both" and subscription ~= "to" and subscription ~= "from" and subscription ~= "none" then -- TODO error on invalid | |
98 subscription = roster[jid] and roster[jid].subscription or "none"; | |
99 end | |
96 local r_item = {name = item.attr.name, groups = {}}; | 100 local r_item = {name = item.attr.name, groups = {}}; |
97 if r_item.name == "" then r_item.name = nil; end | 101 if r_item.name == "" then r_item.name = nil; end |
98 if roster[jid] then | 102 r_item.subscription = subscription; |
99 r_item.subscription = roster[jid].subscription; | 103 if subscription ~= "both" and subscription ~= "to" then |
100 r_item.ask = roster[jid].ask; | 104 r_item.ask = roster[jid] and roster[jid].ask; |
101 else | |
102 r_item.subscription = "none"; | |
103 end | 105 end |
104 for _, child in ipairs(item) do | 106 for _, child in ipairs(item) do |
105 if child.name == "group" then | 107 if child.name == "group" then |
106 local text = t_concat(child); | 108 local text = t_concat(child); |
107 if text and text ~= "" then | 109 if text and text ~= "" then |