summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/acf-util/password-controller.lua16
-rw-r--r--app/acf-util/password-model.lua4
-rw-r--r--app/acf-util/skins-controller.lua2
-rw-r--r--app/acf-util/skins-model.lua35
-rw-r--r--app/acf-util/skins-read-html.lsp2
5 files changed, 28 insertions, 31 deletions
diff --git a/app/acf-util/password-controller.lua b/app/acf-util/password-controller.lua
index 5ff8145..20248f3 100644
--- a/app/acf-util/password-controller.lua
+++ b/app/acf-util/password-controller.lua
@@ -24,7 +24,7 @@ function editme(self)
end
value.value.roles = nil
return value
- end, function(value)
+ end, function(self, value)
-- If password and password_confirm are blank, don't set them
local pw, pwc
if value.value.password.value == "" and value.value.password_confirm.value == "" then
@@ -45,7 +45,7 @@ end
function edituser(self)
return self.handle_form(self, function()
return self.model.read_user(self, self.clientdata.userid)
- end, function(value)
+ end, function(self, value)
-- If password and password_confirm are blank, don't set them
local pw, pwc
if value.value.password.value == "" and value.value.password_confirm.value == "" then
@@ -64,17 +64,9 @@ function edituser(self)
end
function newuser(self)
- return self.handle_form(self, function()
- return self.model.read_user(self)
- end, function(value)
- return self.model.create_user(self, value)
- end, self.clientdata, "Create", "Create New User", "Created user")
+ return self.handle_form(self, self.model.read_user, self.model.create_user, self.clientdata, "Create", "Create New User", "Created user")
end
function deleteuser(self)
- return self.handle_form(self, function()
- return self.model.get_delete_user(self, self.clientdata.userid)
- end, function(value)
- return self.model.delete_user(self, value)
- end, self.clientdata, "Delete", "Delete User", "Deleted user")
+ return self.handle_form(self, self.model.get_delete_user, self.model.delete_user, self.clientdata, "Delete", "Delete User", "Deleted user")
end
diff --git a/app/acf-util/password-model.lua b/app/acf-util/password-model.lua
index 2a76c99..b9cafb9 100644
--- a/app/acf-util/password-model.lua
+++ b/app/acf-util/password-model.lua
@@ -164,8 +164,8 @@ function get_users(self)
return cfe({ type="group", value=users, label="User Configs" })
end
-function get_delete_user(self, user)
- local userid = cfe({ label="User id", value=user or "" })
+function get_delete_user(self, clientdata)
+ local userid = cfe({ label="User id", value=clientdata.userid or "" })
return cfe({ type="group", value={userid=userid}, label="Delete User" })
end
diff --git a/app/acf-util/skins-controller.lua b/app/acf-util/skins-controller.lua
index 5d4d0d7..c3d08a0 100644
--- a/app/acf-util/skins-controller.lua
+++ b/app/acf-util/skins-controller.lua
@@ -9,6 +9,6 @@ read = function (self )
end
update = function (self )
- return self:redirect_to_referrer(self.model.update(self, self.clientdata.skin or ""))
+ return self.handle_form(self, self.model.get_update, self.model.update, self.clientdata, "Update", "Update Skin", "Skin updated")
end
diff --git a/app/acf-util/skins-model.lua b/app/acf-util/skins-model.lua
index eda6870..b717de6 100644
--- a/app/acf-util/skins-model.lua
+++ b/app/acf-util/skins-model.lua
@@ -1,5 +1,6 @@
module (..., package.seeall)
+require("modelfunctions")
fs = require("acf.fs")
format = require("acf.format")
@@ -11,8 +12,6 @@ local function set_skins(self, skin)
content = "\nskin="..skin..content
end
fs.write_file(self.conf.conffile, string.sub(content,2))
- local cmdoutput = "New skin selected"
- return cmdoutput, errtxt
end
local function list_skins(self)
@@ -21,30 +20,36 @@ local function list_skins(self)
for i,file in ipairs(posix.dir(self.conf.wwwdir ..skin) or {}) do
-- Ignore files that begins with a '.' and 'cgi-bin' and only list folders
if not ((string.match(file, "^%.")) or (string.match(file, "^cgi[-]bin")) or (string.match(file, "^static")) or (posix.stat(self.conf.wwwdir .. skin .. file).type ~= "directory")) then
- local entry = cfe({ value=skin..file, label="Skin name" })
- local current = conf.skin
+ local entry = cfe({ value=skin..file, label=file })
+ local current = self.conf.skin
entry.inuse = (skin..file == current)
table.insert(skinarray, entry)
end
end
end
- return cfe({ type="list", value=skinarray, label="Skins" })
+ return skinarray
end
get = function (self)
- return list_skins(self)
+ return cfe({ type="list", value=list_skins(self), label="Skins" })
+end
+
+get_update = function (self)
+ local skin = cfe({ type="select", value="", label="Skin", option=list_skins(self) })
+ if self and self.conf and self.conf.skin then
+ skin.value = self.conf.skin
+ end
+ return cfe({ type="group", value={skin=skin}, label="Update Skin" })
end
update = function (self, newskin)
- -- Make sure no one can inject code into the model.
- local availableskins = list_skins(self)
- local cmdoutput = "Failed to set skin"
- local errtxt = "Invalid selection"
- for i,skin in ipairs(availableskins.value) do
- if ( skin.value == newskin) then
- cmdoutput, errtxt = set_skins(self, newskin)
- end
+ local success = modelfunctions.validateselect(newskin.value.skin)
+ if success then
+ set_skins(self, newskin.value.skin.value)
+ self.conf.skin = newskin.value.skin.value
+ else
+ newskin.errtxt = "Failed to set skin"
end
- return cfe({ value=cmdoutput, errtxt=errtxt, label="Set skin result" })
+ return newskin
end
diff --git a/app/acf-util/skins-read-html.lsp b/app/acf-util/skins-read-html.lsp
index 2d43b49..3dc53f8 100644
--- a/app/acf-util/skins-read-html.lsp
+++ b/app/acf-util/skins-read-html.lsp
@@ -11,7 +11,7 @@
<% if (skin.inuse) then %>
<dd>in use</dd>
<% else %>
- <dd>[<a href="update?skin=<%= html.html_escape(skin.value) %>">use this skin</a>]</dd>
+ <dd>[<a href="update?skin=<%= html.html_escape(skin.value) %>&submit=true">use this skin</a>]</dd>
<% end %>
<% end %>
</DL>