equal
deleted
inserted
replaced
1 local usermanager = require "core.usermanager"; |
1 local usermanager = require "core.usermanager"; |
2 |
2 |
3 local json = require "util.json"; |
3 local json = require "util.json"; |
4 local st = require "util.stanza"; |
4 local st = require "util.stanza"; |
|
5 local array = require "util.array"; |
5 |
6 |
6 module:depends("http"); |
7 module:depends("http"); |
7 |
8 |
8 local invites = module:depends("invites"); |
9 local invites = module:depends("invites"); |
9 local tokens = module:depends("tokenauth"); |
10 local tokens = module:depends("tokenauth"); |
172 if ok and nick_item then |
173 if ok and nick_item then |
173 display_name = nick_item:get_child_text("nick", xmlns_nick); |
174 display_name = nick_item:get_child_text("nick", xmlns_nick); |
174 end |
175 end |
175 end |
176 end |
176 |
177 |
|
178 local roles = nil; |
|
179 if usermanager.get_roles then |
|
180 local roles_map = usermanager.get_roles(username.."@"..module.host, module.host) |
|
181 roles = array() |
|
182 if roles_map then |
|
183 for role in pairs(roles_map) do |
|
184 roles:push(role) |
|
185 end |
|
186 end |
|
187 end |
|
188 |
177 return { |
189 return { |
178 username = username; |
190 username = username; |
179 display_name = display_name; |
191 display_name = display_name; |
|
192 roles = roles; |
180 }; |
193 }; |
181 end |
194 end |
182 |
195 |
183 local function get_session_debug_info(session) |
196 local function get_session_debug_info(session) |
184 local info = { |
197 local info = { |
390 _defaults_only = true; |
403 _defaults_only = true; |
391 }) then |
404 }) then |
392 final_user.display_name = new_user.display_name; |
405 final_user.display_name = new_user.display_name; |
393 end |
406 end |
394 end |
407 end |
|
408 |
|
409 if new_user.roles then |
|
410 if not usermanager.set_roles then |
|
411 return 500, "feature-not-implemented" |
|
412 end |
|
413 |
|
414 local backend_roles = {}; |
|
415 for _, role in ipairs(new_user.roles) do |
|
416 backend_roles[role] = true; |
|
417 end |
|
418 local jid = username.."@"..module.host; |
|
419 if not usermanager.set_roles(jid, module.host, backend_roles) then |
|
420 module:log("error", "failed to set roles %q for %s", backend_roles, jid) |
|
421 return 500 |
|
422 end |
|
423 end |
|
424 |
395 return 200; |
425 return 200; |
396 end |
426 end |
397 |
427 |
398 function delete_user(event, username) --luacheck: ignore 212/event |
428 function delete_user(event, username) --luacheck: ignore 212/event |
399 if not usermanager.delete_user(username, module.host) then |
429 if not usermanager.delete_user(username, module.host) then |