Software /
code /
prosody
Comparison
core/rostermanager.lua @ 171:28f420d057a0
Inbound subscription approval
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Sat, 25 Oct 2008 02:16:29 +0500 |
parent | 132:9a4aa57af367 |
child | 172:71247788c7c7 |
comparison
equal
deleted
inserted
replaced
170:e7bff9cfbb65 | 171:28f420d057a0 |
---|---|
81 hosts[host].sessions[username].roster = roster; | 81 hosts[host].sessions[username].roster = roster; |
82 end | 82 end |
83 return roster; | 83 return roster; |
84 end | 84 end |
85 -- Attempt to load roster for non-loaded user | 85 -- Attempt to load roster for non-loaded user |
86 -- TODO also support loading for offline user | 86 return datamanager.load(username, host, "roster") or {}; |
87 end | 87 end |
88 | 88 |
89 function save_roster(username, host) | 89 function save_roster(username, host) |
90 if hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster then | 90 if hosts[host] and hosts[host].sessions[username] and hosts[host].sessions[username].roster then |
91 return datamanager.store(username, host, "roster", hosts[host].sessions[username].roster); | 91 return datamanager.store(username, host, "roster", hosts[host].sessions[username].roster); |
92 end | 92 end |
93 return nil; | 93 return nil; |
94 end | 94 end |
95 | 95 |
96 function process_inbound_subscription_approval(username, host, jid) | |
97 local roster = load_roster(username, host); | |
98 local item = roster[jid]; | |
99 if item and item.ask and (item.subscription == "none" or item.subscription == "from") then | |
100 if item.subscription == "none" then | |
101 item.subscription = "to"; | |
102 else | |
103 item.subscription = "both"; | |
104 end | |
105 item.ask = nil; | |
106 return datamanager.store(username, host, "roster", roster); | |
107 end | |
108 end | |
109 | |
96 return _M; | 110 return _M; |