summaryrefslogtreecommitdiffstats
path: root/kamailio-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'kamailio-model.lua')
-rw-r--r--kamailio-model.lua71
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)