diff mod_firewall/marks.lib.lua @ 6548:430584888704

mod_firewall: marks: load marks from storage on login
author Matthew Wild <mwild1@gmail.com>
date Sun, 24 May 2026 10:48:24 +0100
parents 048284447643
children d2e50b587721
line wrap: on
line diff
--- a/mod_firewall/marks.lib.lua	Sun May 24 18:42:43 2026 +0100
+++ b/mod_firewall/marks.lib.lua	Sun May 24 10:48:24 2026 +0100
@@ -3,6 +3,19 @@
 
 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("firewall/marked/user", function (event)
 	local user = user_sessions[event.username];
 	local marks = user and user.firewall_marks;