summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2011-06-21 14:28:40 +0000
committerTed Trask <ttrask01@yahoo.com>2011-06-21 14:28:40 +0000
commit859336d5633513e35a205f14c75c9c30832a8a7f (patch)
treea8a3f3ffea726a0b622353f014eeaef3c9053cd4
parent15a0b726d840963f3969b1cf7caa499438d89ecd (diff)
downloadacf-freeswitch-vmail-859336d5633513e35a205f14c75c9c30832a8a7f.tar.bz2
acf-freeswitch-vmail-859336d5633513e35a205f14c75c9c30832a8a7f.tar.xz
Fixed bug where deleting blank user deleted all messages and the first user
-rw-r--r--vmail-model.lua48
1 files changed, 26 insertions, 22 deletions
diff --git a/vmail-model.lua b/vmail-model.lua
index 9b6e87c..3828366 100644
--- a/vmail-model.lua
+++ b/vmail-model.lua
@@ -659,31 +659,35 @@ delete_user = function(username)
local result = ""
local errtxt
errtxt = nil
- local res, err = pcall(function()
- local connected = databaseconnect()
- local users = listusers(username)
- if #users == 0 then
- errtxt = "User does not exist"
- else
- -- Delete all of the user's voicemails
- local messages = list_messages(username)
- if #messages.value then
- for i,m in ipairs(messages.value) do
- delete_message(m.uuid)
+ if not username or username == "" then
+ errtxt = "User does not exist"
+ else
+ local res, err = pcall(function()
+ local connected = databaseconnect()
+ local users = listusers(username)
+ if #users == 0 or username == "" then
+ errtxt = "User does not exist"
+ else
+ -- Delete all of the user's voicemails
+ local messages = list_messages(username)
+ if #messages.value then
+ for i,m in ipairs(messages.value) do
+ delete_message(m.uuid)
+ end
end
+ -- Remove the user parameters
+ sql = "DELETE FROM voicemail_values " .. generatewhereclause(nil, nil, nil, users[1].uid)
+ runsqlcommand(sql)
+ -- Remove the user
+ sql = "DELETE FROM voicemail_users " .. generatewhereclause(nil, nil, nil, users[1].uid)
+ runsqlcommand(sql)
+ result = "Voicemail User Deleted"
end
- -- Remove the user parameters
- sql = "DELETE FROM voicemail_values " .. generatewhereclause(nil, nil, nil, users[1].uid)
- runsqlcommand(sql)
- -- Remove the user
- sql = "DELETE FROM voicemail_users " .. generatewhereclause(nil, nil, nil, users[1].uid)
- runsqlcommand(sql)
- result = "Voicemail User Deleted"
+ if connected then databasedisconnect() end
+ end)
+ if not res and err then
+ errtxt = err
end
- if connected then databasedisconnect() end
- end)
- if not res and err then
- errtxt = err
end
return cfe({ value=result, errtxt=errtxt, label="Delete User Result" })