usermanager: Fire user-roles-changed event when updating roles of a local user
authorMatthew Wild <mwild1@gmail.com>
Fri, 12 Nov 2021 13:25:09 +0000
changeset 11902 89aa591bb895
parent 11901 e84ea5b58b29
child 11903 6d06068363aa
usermanager: Fire user-roles-changed event when updating roles of a local user
core/usermanager.lua
--- a/core/usermanager.lua	Fri Nov 12 14:22:21 2021 +0100
+++ b/core/usermanager.lua	Fri Nov 12 13:25:09 2021 +0000
@@ -174,7 +174,13 @@
 
 	local authz_provider = (host ~= "*" and hosts[host].authz) or global_authz_provider;
 	if actor_user and actor_host == host then -- Local user
-		return authz_provider.set_user_roles(actor_user, roles)
+		local ok, err = authz_provider.set_user_roles(actor_user, roles);
+		if ok then
+			prosody.events.fire_event("user-roles-changed", {
+				username = actor_user, host = actor_host
+			});
+		end
+		return ok, err;
 	else -- Remote entity
 		return authz_provider.set_jid_roles(jid, roles)
 	end