moduleapi: Distribute permissions set from global modules to all hosts
authorKim Alvefur <zash@zash.se>
Wed, 20 Jul 2022 13:05:35 +0200
changeset 12654 e08bf2ad67da
parent 12653 86e1187f6274
child 12655 1ce98f27eabe
moduleapi: Distribute permissions set from global modules to all hosts Roles and permissions will always happen in the context of a host. Prevents error upon indexing since `hosts["*"] == nil`
core/moduleapi.lua
--- a/core/moduleapi.lua	Wed Jul 20 10:52:17 2022 +0100
+++ b/core/moduleapi.lua	Wed Jul 20 13:05:35 2022 +0200
@@ -604,6 +604,14 @@
 
 function api:default_permission(role_name, permission)
 	permission = permission:gsub("^:", self.name..":");
+	if self.host == "*" then
+		for _, host in pairs(hosts) do
+			if host.authz then
+				host.authz.add_default_permission(role_name, permission);
+			end
+		end
+		return
+	end
 	hosts[self.host].authz.add_default_permission(role_name, permission);
 end