Software /
code /
prosody
Comparison
core/usermanager.lua @ 5042:ce823b32225e
usermanager: Add method for deleting a user
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 28 Jul 2012 21:55:05 +0200 |
parent | 4943:50f63f07245f |
child | 5094:e646c849d72f |
comparison
equal
deleted
inserted
replaced
5041:be204204cc5f | 5042:ce823b32225e |
---|---|
8 | 8 |
9 local modulemanager = require "core.modulemanager"; | 9 local modulemanager = require "core.modulemanager"; |
10 local log = require "util.logger".init("usermanager"); | 10 local log = require "util.logger".init("usermanager"); |
11 local type = type; | 11 local type = type; |
12 local ipairs = ipairs; | 12 local ipairs = ipairs; |
13 local pairs = pairs; | |
13 local jid_bare = require "util.jid".bare; | 14 local jid_bare = require "util.jid".bare; |
14 local jid_prep = require "util.jid".prep; | 15 local jid_prep = require "util.jid".prep; |
15 local config = require "core.configmanager"; | 16 local config = require "core.configmanager"; |
16 local hosts = hosts; | 17 local hosts = hosts; |
17 local sasl_new = require "util.sasl".new; | 18 local sasl_new = require "util.sasl".new; |
19 local storagemanager = require "core.storagemanager"; | |
18 | 20 |
19 local prosody = _G.prosody; | 21 local prosody = _G.prosody; |
20 | 22 |
21 local setmetatable = setmetatable; | 23 local setmetatable = setmetatable; |
22 | 24 |
86 function create_user(username, password, host) | 88 function create_user(username, password, host) |
87 return hosts[host].users.create_user(username, password); | 89 return hosts[host].users.create_user(username, password); |
88 end | 90 end |
89 | 91 |
90 function delete_user(username, host) | 92 function delete_user(username, host) |
91 return hosts[host].users.delete_user(username); | 93 local user = hosts[host].sessions[username]; |
94 if user and user.sessions then | |
95 for jid, session in pairs(user.sessions) do | |
96 session:close{ condition = "not-authorized", text = "Account deleted" }; | |
97 end | |
98 end | |
99 local ok, err = hosts[host].users.delete_user(username); | |
100 if not ok then return nil, err; end | |
101 return storagemanager.get_driver(host):purge(username); | |
92 end | 102 end |
93 | 103 |
94 function get_sasl_handler(host, session) | 104 function get_sasl_handler(host, session) |
95 return hosts[host].users.get_sasl_handler(session); | 105 return hosts[host].users.get_sasl_handler(session); |
96 end | 106 end |