19 local io, os = io, os; |
19 local io, os = io, os; |
20 local tostring, tonumber = tostring, tonumber; |
20 local tostring, tonumber = tostring, tonumber; |
21 |
21 |
22 local CFG_SOURCEDIR = _G.CFG_SOURCEDIR; |
22 local CFG_SOURCEDIR = _G.CFG_SOURCEDIR; |
23 |
23 |
|
24 local prosody = prosody; |
|
25 |
24 module "prosodyctl" |
26 module "prosodyctl" |
25 |
27 |
26 function adduser(params) |
28 function adduser(params) |
27 local user, host, password = nodeprep(params.user), nameprep(params.host), params.password; |
29 local user, host, password = nodeprep(params.user), nameprep(params.host), params.password; |
28 if not user then |
30 if not user then |
29 return false, "invalid-username"; |
31 return false, "invalid-username"; |
30 elseif not host then |
32 elseif not host then |
31 return false, "invalid-hostname"; |
33 return false, "invalid-hostname"; |
|
34 end |
|
35 |
|
36 local provider = prosody.hosts[host].users; |
|
37 if not(provider) or provider.name == "null" then |
|
38 usermanager.initialize_host(host); |
32 end |
39 end |
33 |
40 |
34 local ok = usermanager.create_user(user, password, host); |
41 local ok = usermanager.create_user(user, password, host); |
35 if not ok then |
42 if not ok then |
36 return false, "unable-to-save-data"; |
43 return false, "unable-to-save-data"; |
37 end |
44 end |
38 return true; |
45 return true; |
39 end |
46 end |
40 |
47 |
41 function user_exists(params) |
48 function user_exists(params) |
|
49 local provider = prosody.hosts[host].users; |
|
50 if not(provider) or provider.name == "null" then |
|
51 usermanager.initialize_host(host); |
|
52 end |
|
53 |
42 return usermanager.user_exists(params.user, params.host); |
54 return usermanager.user_exists(params.user, params.host); |
43 end |
55 end |
44 |
56 |
45 function passwd(params) |
57 function passwd(params) |
46 if not _M.user_exists(params) then |
58 if not _M.user_exists(params) then |