diff options
-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" }) |