view plugins/mod_authz_internal.lua @ 10698:e4034f6668a5

MUC: Add ad-hoc command setting affiliation in a room (fixes #1174) This gives service admins a way to set an arbitrary affiliation in any room. Enables various administrative use cases such as room ownership reassignment or recovery. Reduces the need for the admins-as-owners feature, as this can be used by admins to make themselves owner in any room when needed, instead of being owners all the time.
author Kim Alvefur <zash@zash.se>
date Sat, 21 Mar 2020 00:00:50 +0100
parents 8f95308c3c45
children c32753ceb0f0
line wrap: on
line source

local normalize = require "util.jid".prep;
local admin_jids = module:get_option_inherited_set("admins", {}) / normalize;
local host = module.host;
local role_store = module:open_store("roles");

local admin_role = { ["prosody:admin"] = true };

function get_user_roles(user)
	if admin_jids:contains(user.."@"..host) then
		return admin_role;
	end
	return role_store:get(user);
end

function get_jid_roles(jid)
	if admin_jids:contains(jid) then
		return admin_role;
	end
	return nil;
end