Mercurial > prosody-hg
comparison plugins/mod_admin_shell.lua @ 14121:7008869fcce2
Merge 13.0->trunk
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 02 Apr 2026 20:54:46 +0100 |
| parents | 44a8c8d4146a 0e9e3efa381f |
| children | c1469296190d |
comparison
equal
deleted
inserted
replaced
| 14118:221f3378e7f4 | 14121:7008869fcce2 |
|---|---|
| 19 local server = require "prosody.net.server"; | 19 local server = require "prosody.net.server"; |
| 20 local schema = require "prosody.util.jsonschema"; | 20 local schema = require "prosody.util.jsonschema"; |
| 21 local st = require "prosody.util.stanza"; | 21 local st = require "prosody.util.stanza"; |
| 22 local parse_args = require "prosody.util.argparse".parse; | 22 local parse_args = require "prosody.util.argparse".parse; |
| 23 local dt = require "prosody.util.datetime"; | 23 local dt = require "prosody.util.datetime"; |
| 24 local saslprep = require "prosody.util.encodings".stringprep.saslprep; | |
| 24 | 25 |
| 25 local _G = _G; | 26 local _G = _G; |
| 26 | 27 |
| 27 local prosody = _G.prosody; | 28 local prosody = _G.prosody; |
| 28 | 29 |
| 1911 | 1912 |
| 1912 if not role then | 1913 if not role then |
| 1913 role = module:get_option_string("default_provisioned_role", "prosody:member"); | 1914 role = module:get_option_string("default_provisioned_role", "prosody:member"); |
| 1914 end | 1915 end |
| 1915 | 1916 |
| 1916 return promise.resolve(password or self.session.request_input("password")):next(function (password_) | 1917 return promise.resolve(password or self.session.request_input("password")):next(function (raw_password) |
| 1917 local ok, err = um.create_user_with_role(username, password_, host, role); | 1918 local prepped_password = saslprep(raw_password); |
| 1919 if not prepped_password or prepped_password == "" then | |
| 1920 return promise.reject("Unacceptable password"); | |
| 1921 end | |
| 1922 | |
| 1923 self.session.print(("PW: %q"):format(raw_password)); | |
| 1924 self.session.print(("PW2: %q"):format(prepped_password)); | |
| 1925 | |
| 1926 local ok, err = um.create_user_with_role(username, prepped_password, host, role); | |
| 1918 if not ok then | 1927 if not ok then |
| 1919 return promise.reject("Could not create user: "..err); | 1928 return promise.reject("Could not create user: "..err); |
| 1920 end | 1929 end |
| 1921 return ("Created %s with role '%s'"):format(jid, role); | 1930 return ("Created %s with role '%s'"):format(jid, role); |
| 1922 end); | 1931 end); |
| 1977 return nil, "No such host: "..host; | 1986 return nil, "No such host: "..host; |
| 1978 elseif not um.user_exists(username, host) then | 1987 elseif not um.user_exists(username, host) then |
| 1979 return nil, "No such user"; | 1988 return nil, "No such user"; |
| 1980 end | 1989 end |
| 1981 | 1990 |
| 1982 return promise.resolve(password or self.session.request_input("password")):next(function (password_) | 1991 return promise.resolve(password or self.session.request_input("password")):next(function (raw_password) |
| 1983 local ok, err = um.set_password(username, password_, host, nil); | 1992 local prepped_password = saslprep(raw_password); |
| 1993 if not prepped_password or prepped_password == "" then | |
| 1994 return promise.reject("Unacceptable password"); | |
| 1995 end | |
| 1996 | |
| 1997 self.session.print(("PW: %q"):format(raw_password)); | |
| 1998 self.session.print(("PW2: %q"):format(prepped_password)); | |
| 1999 | |
| 2000 local ok, err = um.set_password(username, prepped_password, host, nil); | |
| 1984 if ok then | 2001 if ok then |
| 1985 return "User password changed"; | 2002 return "User password changed"; |
| 1986 else | 2003 else |
| 1987 return promise.reject("Could not change password for user: "..err); | 2004 return promise.reject("Could not change password for user: "..err); |
| 1988 end | 2005 end |
