Mercurial > prosody-modules
comparison mod_adhoc_cmd_admin/mod_adhoc_cmd_admin.lua @ 169:b3a68e71b8a1
mod_adhoc, mod_adhoc_cmd_admin: Handle errors according to XEP
| author | Florian Zeitz < florob@babelmonkeys.de> |
|---|---|
| date | Thu, 10 Jun 2010 22:32:49 +0200 |
| parents | 7a037cb5ab9e |
| children | d15c7d86db11 |
comparison
equal
deleted
inserted
replaced
| 168:cd8492748985 | 169:b3a68e71b8a1 |
|---|---|
| 1 -- Copyright (C) 2009 Florian Zeitz | 1 -- Copyright (C) 2009-2010 Florian Zeitz |
| 2 -- | 2 -- |
| 3 -- This file is MIT/X11 licensed. Please see the | 3 -- This file is MIT/X11 licensed. Please see the |
| 4 -- COPYING file in the source package for more information. | 4 -- COPYING file in the source package for more information. |
| 5 -- | 5 -- |
| 6 | 6 |
| 149 end | 149 end |
| 150 local fields = add_user_layout:data(data.form); | 150 local fields = add_user_layout:data(data.form); |
| 151 local username, host, resource = jid.split(fields.accountjid); | 151 local username, host, resource = jid.split(fields.accountjid); |
| 152 if (fields["password"] == fields["password-verify"]) and username and host and host == data.to then | 152 if (fields["password"] == fields["password-verify"]) and username and host and host == data.to then |
| 153 if usermanager_user_exists(username, host) then | 153 if usermanager_user_exists(username, host) then |
| 154 return { status = "error", error = { type = "cancel", condition = "conflict", message = "Account already exists" } }; | 154 return { status = "completed", error = { message = "Account already exists" } }; |
| 155 else | 155 else |
| 156 if usermanager_create_user(username, fields.password, host) then | 156 if usermanager_create_user(username, fields.password, host) then |
| 157 module:log("info", "Created new account " .. username.."@"..host); | 157 module:log("info", "Created new account " .. username.."@"..host); |
| 158 return { status = "completed", info = "Account successfully created" }; | 158 return { status = "completed", info = "Account successfully created" }; |
| 159 else | 159 else |
| 160 return { status = "error", error = { type = "wait", condition = "internal-server-error", | 160 return { status = "completed", error = { message = "Failed to write data to disk" } }; |
| 161 message = "Failed to write data to disk" } }; | |
| 162 end | 161 end |
| 163 end | 162 end |
| 164 else | 163 else |
| 165 module:log("debug", fields.accountjid .. " " .. fields.password .. " " .. fields["password-verify"]); | 164 module:log("debug", (fields.accountjid or "<nil>") .. " " .. (fields.password or "<nil>") .. " " |
| 166 return { status = "error", error = { type = "cancel", condition = "conflict", | 165 .. (fields["password-verify"] or "<nil>")); |
| 167 message = "Invalid data.\nPassword mismatch, or empty username" } }; | 166 return { status = "completed", error = { message = "Invalid data.\nPassword mismatch, or empty username" } }; |
| 168 end | 167 end |
| 169 else | 168 else |
| 170 return { status = "executing", form = add_user_layout }, "executing"; | 169 return { status = "executing", form = add_user_layout }, "executing"; |
| 171 end | 170 end |
| 172 end | 171 end |
| 179 local fields = change_user_password_layout:data(data.form); | 178 local fields = change_user_password_layout:data(data.form); |
| 180 local username, host, resource = jid.split(fields.accountjid); | 179 local username, host, resource = jid.split(fields.accountjid); |
| 181 if usermanager_user_exists(username, host) and usermanager_set_password(username, host, fields.password) then | 180 if usermanager_user_exists(username, host) and usermanager_set_password(username, host, fields.password) then |
| 182 return { status = "completed", info = "Password successfully changed" }; | 181 return { status = "completed", info = "Password successfully changed" }; |
| 183 else | 182 else |
| 184 return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; | 183 return { status = "completed", error = { message = "User does not exist" } }; |
| 185 end | 184 end |
| 186 else | 185 else |
| 187 return { status = "executing", form = change_user_password_layout }, "executing"; | 186 return { status = "executing", form = change_user_password_layout }, "executing"; |
| 188 end | 187 end |
| 189 end | 188 end |
| 256 local password = ""; | 255 local password = ""; |
| 257 if usermanager_user_exists(user, host) then | 256 if usermanager_user_exists(user, host) then |
| 258 accountjid = fields.accountjid; | 257 accountjid = fields.accountjid; |
| 259 password = usermanager_get_password(user, host); | 258 password = usermanager_get_password(user, host); |
| 260 else | 259 else |
| 261 return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; | 260 return { status = "completed", error = { message = "User does not exist" } }; |
| 262 end | 261 end |
| 263 return { status = "completed", result = { layout = get_user_password_result_layout, data = {accountjid = accountjid, password = password} } }; | 262 return { status = "completed", result = { layout = get_user_password_result_layout, data = {accountjid = accountjid, password = password} } }; |
| 264 else | 263 else |
| 265 return { status = "executing", form = get_user_password_layout }, "executing"; | 264 return { status = "executing", form = get_user_password_layout }, "executing"; |
| 266 end | 265 end |
| 274 | 273 |
| 275 local fields = add_user_layout:data(data.form); | 274 local fields = add_user_layout:data(data.form); |
| 276 | 275 |
| 277 local user, host, resource = jid.split(fields.accountjid); | 276 local user, host, resource = jid.split(fields.accountjid); |
| 278 if not usermanager_user_exists(user, host) then | 277 if not usermanager_user_exists(user, host) then |
| 279 return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; | 278 return { status = "completed", error = { message = "User does not exist" } }; |
| 280 end | 279 end |
| 281 local roster = rm_load_roster(user, host); | 280 local roster = rm_load_roster(user, host); |
| 282 | 281 |
| 283 local query = st.stanza("query", { xmlns = "jabber:iq:roster" }); | 282 local query = st.stanza("query", { xmlns = "jabber:iq:roster" }); |
| 284 for jid in pairs(roster) do | 283 for jid in pairs(roster) do |
| 315 | 314 |
| 316 local fields = get_user_stats_layout:data(data.form); | 315 local fields = get_user_stats_layout:data(data.form); |
| 317 | 316 |
| 318 local user, host, resource = jid.split(fields.accountjid); | 317 local user, host, resource = jid.split(fields.accountjid); |
| 319 if not usermanager_user_exists(user, host) then | 318 if not usermanager_user_exists(user, host) then |
| 320 return { status = "error", error = { type = "cancel", condition = "item-not-found", message = "User does not exist" } }; | 319 return { status = "completed", error = { message = "User does not exist" } }; |
| 321 end | 320 end |
| 322 local roster = rm_load_roster(user, host); | 321 local roster = rm_load_roster(user, host); |
| 323 local rostersize = 0; | 322 local rostersize = 0; |
| 324 local IPs = ""; | 323 local IPs = ""; |
| 325 local resources = ""; | 324 local resources = ""; |
