Mercurial > prosody-modules
comparison mod_privilege/mod_privilege.lua @ 1994:f263fcf1b0ed
Merge with Goffi
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Mon, 21 Dec 2015 12:24:21 +0100 |
| parents | c4da3d9f212d |
| children | e9226e3bdeba |
comparison
equal
deleted
inserted
replaced
| 1987:6d7699eda594 | 1994:f263fcf1b0ed |
|---|---|
| 6 -- | 6 -- |
| 7 -- Some parts come from mod_remote_roster (module by Waqas Hussain and Kim Alvefur, see https://code.google.com/p/prosody-modules/) | 7 -- Some parts come from mod_remote_roster (module by Waqas Hussain and Kim Alvefur, see https://code.google.com/p/prosody-modules/) |
| 8 | 8 |
| 9 -- TODO: manage external <presence/> (for "roster" presence permission) when the account with the roster is offline | 9 -- TODO: manage external <presence/> (for "roster" presence permission) when the account with the roster is offline |
| 10 | 10 |
| 11 local jid = require("util/jid") | 11 local jid = require("util.jid") |
| 12 local set = require("util/set") | 12 local set = require("util.set") |
| 13 local st = require("util/stanza") | 13 local st = require("util.stanza") |
| 14 local roster_manager = require("core/rostermanager") | 14 local roster_manager = require("core.rostermanager") |
| 15 local user_manager = require("core/usermanager") | 15 local usermanager_user_exists = require "core.usermanager".user_exists; |
| 16 local hosts = prosody.hosts | 16 local hosts = prosody.hosts |
| 17 local full_sessions = prosody.full_sessions; | 17 local full_sessions = prosody.full_sessions; |
| 18 | 18 |
| 19 local priv_session = module:shared("/*/privilege/session") | 19 local priv_session = module:shared("/*/privilege/session") |
| 20 | 20 |
| 248 local session_privileges = get_session_privileges(session, from_host) | 248 local session_privileges = get_session_privileges(session, from_host) |
| 249 | 249 |
| 250 if session_privileges and _ROSTER_SET_PERM:contains(session_privileges.roster) then | 250 if session_privileges and _ROSTER_SET_PERM:contains(session_privileges.roster) then |
| 251 module:log("debug", "Roster set from allowed privileged entity received") | 251 module:log("debug", "Roster set from allowed privileged entity received") |
| 252 -- following code is adapted from mod_remote_roster | 252 -- following code is adapted from mod_remote_roster |
| 253 if not(user_manager.user_exists(from_node, from_host)) then return; end | 253 if not(usermanager_user_exists(from_node, from_host)) then return; end |
| 254 local roster = roster_manager.load_roster(from_node, from_host); | 254 local roster = roster_manager.load_roster(from_node, from_host); |
| 255 if not(roster) then return; end | 255 if not(roster) then return; end |
| 256 | 256 |
| 257 local query = stanza.tags[1]; | 257 local query = stanza.tags[1]; |
| 258 for _, item in ipairs(query.tags) do | 258 for _, item in ipairs(query.tags) do |
