Mercurial > prosody-modules
diff mod_firewall/marks.lib.lua @ 2894:165d2877eeac
mod_firewall: Add experimental user-centric persistent marks behind a feature flag
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 24 Feb 2018 21:40:56 +0100 |
parents | |
children | 96dec7681af8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_firewall/marks.lib.lua Sat Feb 24 21:40:56 2018 +0100 @@ -0,0 +1,23 @@ +local mark_storage = module:open_store("firewall_marks"); + +local user_sessions = prosody.hosts[module.host].sessions; + +module:hook("resource-bind", function (event) + local session = event.session; + local username = session.username; + local user = user_sessions[username]; + local marks = user.firewall_marks; + if not marks then + marks = mark_storage:get(username) or {}; + user.firewall_marks = marks; -- luacheck: ignore 122 + end + session.firewall_marks = marks; +end); + +module:hook("resource-unbind", function (event) + local session = event.session; + local username = session.username; + local marks = session.firewall_marks; + mark_storage:set(username, marks); +end); +