From 43ac64370f5e8d53ecf874048c27d493c5bc01b4 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Sun, 24 Jan 2016 22:24:30 +0000 Subject: 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 --- app/acf-util/password-model.lua | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'app/acf-util/password-model.lua') 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 -- cgit v1.2.3