diff options
Diffstat (limited to 'kamailio-model.lua')
-rw-r--r-- | kamailio-model.lua | 71 |
1 files changed, 47 insertions, 24 deletions
diff --git a/kamailio-model.lua b/kamailio-model.lua index b8f7bec..e730bc5 100644 --- a/kamailio-model.lua +++ b/kamailio-model.lua @@ -257,12 +257,24 @@ function create_new_user(self, user) return user end -function delete_user(username) - local cmd = path .. "kamctl rm "..format.escapespecialcharacters(username) - local f = io.popen(cmd) - local result = f:read("*a") - f:close() - return cfe({value=result, label="Delete User Result"}) +function get_delete_user(self, clientdata) + local user = {} + user.username = cfe({label="User Name"}) + return cfe({type="group", value=user, label="Delete User"}) +end + +function delete_user(self, user) + if user.value.username.value == "" then + user.value.username.errtxt = "Invalid username" + user.errtxt = "Failed to delete user" + else + local cmd = path .. "kamctl rm "..format.escapespecialcharacters(user.value.username.value) + local f = io.popen(cmd) + local result = f:read("*a") + f:close() + user.descr = result + end + return user end function get_user(username) @@ -452,44 +464,55 @@ function update_table_entry(self, entry, action, create) return entry end -function delete_table_entry(table, id) - local result = "" - local errtxt - if not table or table == "" then - errtxt = "Invalid table" - elseif not id or id == "" then - errtxt = "Invalid entry" +function get_delete_table_entry(self, clientdata) + local retval = {} + retval.table = cfe({ value=clientdata.table or "", label="Table", seq=0 }) + retval.id = cfe({ value=clientdata.id or "", label="ID", seq=1 }) + return cfe({ type="group", value=retval, label="Delete Database Table Entry" }) +end + +function delete_table_entry(self, entry) + entry.errtxt = "Failed to delete table entry" + if entry.value.table.value == "" then + entry.value.table.errtxt = "Invalid table" + elseif entry.value.id.value == "" then + entry.value.id.errtxt = "Invalid entry" else local res, err = pcall(function() local connected = databaseconnect() - errtxt = "Invalid table" + entry.value.table.errtxt = "Invalid table" local tables = listtables() for i,t in ipairs(tables) do - if t == table then - errtxt = nil + if t == entry.value.table.value then + entry.value.table.errtxt = nil break end end - if not errtxt then - local sql = "DELETE FROM "..table.." WHERE id='"..escape(id).."'" + if not entry.value.table.errtxt then + local sql = "DELETE FROM "..entry.value.table.value.." WHERE id='"..escape(entry.value.id.value).."'" runsqlcommand(sql) - result = "Entry Deleted" + entry.errtxt = nil end if connected then databasedisconnect() end end) if not res and err then - errtxt = err + entry.errtxt = err end end - return cfe({ value=result, errtxt=errtxt, label="Delete Entry Result" }) + return entry +end + +function get_create_database(self, clientdata) + return cfe({ type="group", value={}, label="Create Database" }) end -function create_database() +function create_database(self, create_db) local cmd = path.."echo -e 'y\ny\n' | "..path.."kamdbctl create 2>&1" local f = io.popen(cmd) - local result = f:read("*a") - return cfe({ value=result, label="Create database result" }) + create_db.descr = f:read("*a") + f:close() + return create_db end function search_database(id, value, comparison) |