Mercurial > prosody-modules
comparison mod_adhoc_cmd_admin/mod_adhoc_cmd_admin.lua @ 92:7dad958aad15
mod_adhoc_cmd_admin: Change to upcoming XEP version
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Fri, 13 Nov 2009 21:01:24 +0100 |
parents | 63bf00fd8f6e |
children | e172f02726d9 |
comparison
equal
deleted
inserted
replaced
91:63bf00fd8f6e | 92:7dad958aad15 |
---|---|
39 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; | 39 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; |
40 { name = "accountjids", type = "jid-multi", label = "The Jabber ID(s) to delete" }; | 40 { name = "accountjids", type = "jid-multi", label = "The Jabber ID(s) to delete" }; |
41 }; | 41 }; |
42 | 42 |
43 local get_user_password_layout = dataforms_new{ | 43 local get_user_password_layout = dataforms_new{ |
44 title = "Getting Users' Passwords"; | 44 title = "Getting User's Password"; |
45 instructions = "Fill out this form to get users' passwords."; | 45 instructions = "Fill out this form to get a user's password."; |
46 | 46 |
47 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; | 47 { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" }; |
48 { name = "accountjids", type = "jid-multi", label = "The Jabber ID(s) for which to retrieve the password" }; | 48 { name = "accountjid", type = "jid-single", label = "The Jabber ID for which to retrieve the password" }; |
49 }; | 49 }; |
50 | 50 |
51 local get_online_users_layout = dataforms_new{ | 51 local get_online_users_layout = dataforms_new{ |
52 title = "Getting List of Online Users"; | 52 title = "Getting List of Online Users"; |
53 instructions = "How many users should be returned at most?"; | 53 instructions = "How many users should be returned at most?"; |
158 sessions[stanza.tags[1].attr.sessionid] = nil; | 158 sessions[stanza.tags[1].attr.sessionid] = nil; |
159 return true; | 159 return true; |
160 end | 160 end |
161 local form = stanza.tags[1]:child_with_ns("jabber:x:data"); | 161 local form = stanza.tags[1]:child_with_ns("jabber:x:data"); |
162 local fields = get_user_password_layout:data(form); | 162 local fields = get_user_password_layout:data(form); |
163 local accountjids = st.stanza("field", {var="accountjids", label = "JIDs", type="jid-multi"}); | 163 local accountjid = st.stanza("field", {var="accountjid", label = "JID", type="jid-single"}); |
164 local passwords = st.stanza("field", {var="password", label = "Passwords", type="text-multi"}); | 164 local password = st.stanza("field", {var="password", label = "Password", type="text-single"}); |
165 for _, aJID in ipairs(fields.accountjids) do | 165 user, host, resource = jid.split(fields.accountjid); |
166 user, host, resource = jid.split(aJID); | 166 if usermanager_user_exists(user, host) then |
167 if usermanager_user_exists(user, host) then | 167 accountjid:tag("value"):text(fields.accountjid):up(); |
168 accountjids:tag("value"):text(aJID):up(); | 168 password:tag("value"):text(usermanager_get_password(user, host)):up(); |
169 passwords:tag("value"):text(usermanager_get_password(user, host)):up(); | 169 else |
170 end | 170 origin.send(st.error_reply(stanza, "cancel", "item-not-found", "User does not exist") |
171 :add_child(item:cmdtag("canceled", stanza.tags[1].attr.sessionid) | |
172 :tag("note", {type="error"}):text("User does not exist"))); | |
173 sessions[stanza.tags[1].attr.sessionid] = nil; | |
174 return true; | |
171 end | 175 end |
172 origin.send(st.reply(stanza):add_child(item:cmdtag("completed", stanza.tags[1].attr.sessionid) | 176 origin.send(st.reply(stanza):add_child(item:cmdtag("completed", stanza.tags[1].attr.sessionid) |
173 :tag("x", {xmlns="jabber:x:data", type="result"}) | 177 :tag("x", {xmlns="jabber:x:data", type="result"}) |
174 :tag("field", {type="hidden", var="FORM_TYPE"}) | 178 :tag("field", {type="hidden", var="FORM_TYPE"}) |
175 :tag("value"):text("http://jabber.org/protocol/admin"):up():up() | 179 :tag("value"):text("http://jabber.org/protocol/admin"):up():up() |
176 :add_child(accountjids) | 180 :add_child(accountjid) |
177 :add_child(passwords))); | 181 :add_child(password))); |
178 sessions[stanza.tags[1].attr.sessionid] = nil; | 182 sessions[stanza.tags[1].attr.sessionid] = nil; |
179 return true; | 183 return true; |
180 else | 184 else |
181 local sessionid=uuid.generate(); | 185 local sessionid=uuid.generate(); |
182 sessions[sessionid] = "executing"; | 186 sessions[sessionid] = "executing"; |