summaryrefslogtreecommitdiffstats
path: root/app/acf-util/password-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2016-01-24 22:24:30 +0000
committerTed Trask <ttrask01@yahoo.com>2016-01-24 22:24:30 +0000
commit43ac64370f5e8d53ecf874048c27d493c5bc01b4 (patch)
treea560b46ea47a32929e4cfa894309997cb35b2cfe /app/acf-util/password-model.lua
parentb42210d80281189875c652909b971fcb514ec8b2 (diff)
downloadacf-core-43ac64370f5e8d53ecf874048c27d493c5bc01b4.tar.bz2
acf-core-43ac64370f5e8d53ecf874048c27d493c5bc01b4.tar.xz
Add password.listlockevents/unlockuser/unlockip actions to acf-util
password.status now reports locked status for each user Modified session lib to add list_events/delete_events Changed session.record_event/count_events to take IP rather than hash
Diffstat (limited to 'app/acf-util/password-model.lua')
-rw-r--r--app/acf-util/password-model.lua32
1 files changed, 30 insertions, 2 deletions
diff --git a/app/acf-util/password-model.lua b/app/acf-util/password-model.lua
index 54faf4b..72ae416 100644
--- a/app/acf-util/password-model.lua
+++ b/app/acf-util/password-model.lua
@@ -2,6 +2,7 @@ local mymodule = {}
authenticator = require("authenticator")
roles = require("roles")
+session = require("session")
avail_roles, avail_skins, avail_homes = nil
@@ -89,6 +90,7 @@ local function get_blank_user(self)
result.value.roles = cfe({ type="multi", value={}, label="Roles", option=avail_roles or {}, seq=3 })
result.value.skin = cfe({ type="select", value="", label="Skin", option=avail_skins or {""}, seq=7 })
result.value.home = cfe({ type="select", value="", label="Home", option=avail_homes or {""}, seq=6 })
+ result.value.locked = cfe({ type="boolean", value=false, label="Locked", readonly=true, seq=8 })
return result
end
@@ -96,7 +98,7 @@ end
local function get_user(self, userid)
local result = get_blank_user(self)
result.value.userid.key = true
- result.value.userid.value = userid
+ result.value.userid.value = userid or ""
if result.value.userid.value ~= "" then
result.value.userid.readonly = true
@@ -109,6 +111,7 @@ local function get_user(self, userid)
if result.value[n] and n ~= "password" then result.value[n].value = v end
end
end
+ result.value.locked.value = session.count_events(self.conf.sessiondir, result.value.userid.value)
end
return result
@@ -204,7 +207,6 @@ function mymodule.get_users(self)
for x,user in pairs(userlist) do
users[#users+1] = get_user(self, user)
end
-
return cfe({ type="group", value=users, label="User Accounts" })
end
@@ -221,4 +223,30 @@ function mymodule.delete_user(self, deleteuser)
return deleteuser
end
+function mymodule.list_lock_events(self, clientdata)
+ return cfe({type="structure", value=session.list_events(self.conf.sessiondir), label="Lock events"})
+end
+
+function mymodule.get_unlock_user(self, clientdata)
+ local retval = cfe({type="group", value={}, label="Unlock user"})
+ retval.value.userid = cfe({ label="User id" })
+ return retval
+end
+
+function mymodule.unlock_user(self, unlock)
+ session.delete_events(self.conf.sessiondir, unlock.value.userid.value)
+ return unlock
+end
+
+function mymodule.get_unlock_ip(self, clientdata)
+ local retval = cfe({type="group", value={}, label="Unlock IP address"})
+ retval.value.ip = cfe({ label="IP address" })
+ return retval
+end
+
+function mymodule.unlock_ip(self, unlock)
+ session.delete_events(self.conf.sessiondir, nil, unlock.value.ip.value)
+ return unlock
+end
+
return mymodule