diff options
author | Ted Trask <ttrask01@yahoo.com> | 2011-06-21 14:28:40 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2011-06-21 14:28:40 +0000 |
commit | 859336d5633513e35a205f14c75c9c30832a8a7f (patch) | |
tree | a8a3f3ffea726a0b622353f014eeaef3c9053cd4 | |
parent | 15a0b726d840963f3969b1cf7caa499438d89ecd (diff) | |
download | acf-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.lua | 48 |
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" }) |