Skip to content

Commit

Permalink
feat(prosody): Moves is_admin to util.
Browse files Browse the repository at this point in the history
  • Loading branch information
damencho committed Feb 21, 2025
1 parent e5fa258 commit fa801b4
Show file tree
Hide file tree
Showing 11 changed files with 18 additions and 50 deletions.
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_filter_iq_rayo.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ local jid = require "util.jid";

local token_util = module:require "token/util".new(module);
local util = module:require 'util';
local is_admin = util.is_admin;
local room_jid_match_rewrite = util.room_jid_match_rewrite;
local is_feature_allowed = util.is_feature_allowed;
local is_sip_jigasi = util.is_sip_jigasi;
Expand Down Expand Up @@ -38,11 +39,6 @@ local is_visitor_prosody = main_domain ~= nil;
-- this is the main virtual host of this vnode
local local_domain = module:get_option_string('muc_mapper_domain_base');

local um_is_admin = require 'core.usermanager'.is_admin;
local function is_admin(jid)
return um_is_admin(jid, module.host);
end

-- The maximum number of simultaneous calls,
-- and also the maximum number of new calls per minute that a session is allowed to create.
local limit_outgoing_calls;
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_fmuc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ local array = require 'util.array';
local set = require 'util.set';

local util = module:require 'util';
local is_admin = util.is_admin;
local ends_with = util.ends_with;
local is_vpaas = util.is_vpaas;
local room_jid_match_rewrite = util.room_jid_match_rewrite;
Expand Down Expand Up @@ -63,11 +64,6 @@ local sent_iq_cache = require 'util.cache'.new(200);

local sessions = prosody.full_sessions;

local um_is_admin = require 'core.usermanager'.is_admin;
local function is_admin(jid)
return um_is_admin(jid, module.host);
end

local function send_transcriptions_update(room)
-- let's notify main prosody
local lang_array = array();
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_muc_allowners.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ local jid = require "util.jid";
local jid_bare = require "util.jid".bare;
local jid_host = require "util.jid".host;
local st = require "util.stanza";
local um_is_admin = require "core.usermanager".is_admin;
local util = module:require "util";
local is_admin = util.is_admin;
local is_healthcheck_room = util.is_healthcheck_room;
local is_moderated = util.is_moderated;
local get_room_from_jid = util.get_room_from_jid;
Expand All @@ -18,10 +18,6 @@ local function load_config()
end
load_config();

local function is_admin(_jid)
return um_is_admin(_jid, module.host);
end

-- List of the bare_jids of all occupants that are currently joining (went through pre-join) and will be promoted
-- as moderators. As pre-join (where added) and joined event (where removed) happen one after another this list should
-- have length of 1
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_muc_flip.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
-- Copyright (C) 2023-present 8x8, Inc.

local oss_util = module:require "util";
local is_admin =oss_ util.is_admin;
local is_healthcheck_room = oss_util.is_healthcheck_room;
local process_host_module = oss_util.process_host_module;
local um_is_admin = require "core.usermanager".is_admin;
local inspect = require('inspect');
local jid_bare = require "util.jid".bare;
local jid = require "util.jid";
Expand All @@ -21,10 +21,6 @@ if lobby_muc_component_config == nil then
return ;
end

local function is_admin(occupant_jid)
return um_is_admin(occupant_jid, module.host);
end

local function remove_flip_tag(stanza)
stanza:maptags(function(tag)
if tag and tag.name == "flip_device" then
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_muc_meeting_id.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,13 @@ local json = require 'cjson.safe';
local queue = require "util.queue";
local uuid_gen = require "util.uuid".generate;
local main_util = module:require "util";
local is_admin = main_util.is_admin;
local ends_with = main_util.ends_with;
local get_room_from_jid = main_util.get_room_from_jid;
local is_healthcheck_room = main_util.is_healthcheck_room;
local internal_room_jid_match_rewrite = main_util.internal_room_jid_match_rewrite;
local presence_check_status = main_util.presence_check_status;

local um_is_admin = require 'core.usermanager'.is_admin;
local function is_admin(jid)
return um_is_admin(jid, module.host);
end

local QUEUE_MAX_SIZE = 500;

-- Common module for all logic that can be loaded under the conference muc component.
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_muc_wait_for_host.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
-- the guest domain which is anonymous.
-- The module has the option to set participants to moderators when connected via token/when they are authenticated
-- This module depends on mod_persistent_lobby.
local um_is_admin = require 'core.usermanager'.is_admin;
local jid = require 'util.jid';
local util = module:require "util";
local is_admin = util.is_admin;
local is_healthcheck_room = util.is_healthcheck_room;
local is_moderated = util.is_moderated;
local process_host_module = util.process_host_module;
Expand Down Expand Up @@ -43,10 +43,6 @@ if not disable_auto_owners then
end, 2);
end

local function is_admin(jid)
return um_is_admin(jid, module.host);
end

-- if not authenticated user is trying to join the room we enable lobby in it
-- and wait for the moderator to join
module:hook('muc-occupant-pre-join', function (event)
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_speakerstats_component.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
local util = module:require "util";
local is_admin = util.is_admin;
local get_room_from_jid = util.get_room_from_jid;
local room_jid_match_rewrite = util.room_jid_match_rewrite;
local is_jibri = util.is_jibri;
Expand All @@ -9,7 +10,6 @@ local jid_resource = require "util.jid".resource;
local st = require "util.stanza";
local socket = require "socket";
local json = require 'cjson.safe';
local um_is_admin = require "core.usermanager".is_admin;
local jid_split = require 'util.jid'.split;

-- we use async to detect Prosody 0.10 and earlier
Expand All @@ -32,10 +32,6 @@ module:log("info", "Starting speakerstats for %s", muc_component_host);

local main_muc_service;

local function is_admin(jid)
return um_is_admin(jid, module.host);
end

-- Searches all rooms in the main muc component that holds a breakout room
-- caches it if found so we don't search it again
-- we should not cache objects in _data as this is being serialized when calling room:save()
Expand Down
8 changes: 3 additions & 5 deletions resources/prosody-plugins/mod_token_verification.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,17 @@
local log = module._log;
local host = module.host;
local st = require "util.stanza";
local um_is_admin = require "core.usermanager".is_admin;
local jid_split = require 'util.jid'.split;
local jid_bare = require 'util.jid'.bare;

local util = module:require 'util';
local is_admin = util.is_admin;

local DEBUG = false;

local measure_success = module:measure('success', 'counter');
local measure_fail = module:measure('fail', 'counter');

local function is_admin(jid)
return um_is_admin(jid, host);
end

local parentHostName = string.gmatch(tostring(host), "%w+.(%w.+)")();
if parentHostName == nil then
module:log("error", "Failed to start - unable to get parent hostname");
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_visitors.lua
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,11 @@ local st = require 'util.stanza';
local jid = require 'util.jid';
local new_id = require 'util.id'.medium;
local util = module:require 'util';
local is_admin = util.is_admin;
local presence_check_status = util.presence_check_status;
local process_host_module = util.process_host_module;
local is_transcriber_jigasi = util.is_transcriber_jigasi;

local um_is_admin = require 'core.usermanager'.is_admin;
local function is_admin(jid)
return um_is_admin(jid, module.host);
end

local MUC_NS = 'http://jabber.org/protocol/muc';

-- required parameter for custom muc component prefix, defaults to 'conference'
Expand Down
6 changes: 1 addition & 5 deletions resources/prosody-plugins/mod_visitors_component.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ local http = require 'net.http';
local jid = require 'util.jid';
local st = require 'util.stanza';
local util = module:require 'util';
local is_admin = util.is_admin;
local is_healthcheck_room = util.is_healthcheck_room;
local is_sip_jigasi = util.is_sip_jigasi;
local room_jid_match_rewrite = util.room_jid_match_rewrite;
Expand All @@ -18,7 +19,6 @@ local process_host_module = util.process_host_module;
local respond_iq_result = util.respond_iq_result;
local split_string = util.split_string;
local new_id = require 'util.id'.medium;
local um_is_admin = require 'core.usermanager'.is_admin;
local json = require 'cjson.safe';
local inspect = require 'inspect';

Expand Down Expand Up @@ -50,10 +50,6 @@ local http_headers = {
["Accept"] = "application/json"
};

local function is_admin(jid)
return um_is_admin(jid, module.host);
end

-- This is a map to keep data for room and the jids that were allowed to join after visitor mode is enabled
-- automatically allowed or allowed by a moderator
local visitors_promotion_map = {};
Expand Down
6 changes: 6 additions & 0 deletions resources/prosody-plugins/util.lib.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ local http = require "net.http";
local cache = require "util.cache";
local array = require "util.array";
local is_set = require 'util.set'.is_set;
local usermanager = require 'core.usermanager';

local http_timeout = 30;
local have_async, async = pcall(require, "util.async");
Expand Down Expand Up @@ -626,6 +627,11 @@ function get_ip(session)
return request and request.ip or session.ip;
end

-- Checks whether the provided jid is in the list of admins
local function is_admin(jid)
return usermanager.is_admin(jid, module.host);
end

return {
OUTBOUND_SIP_JIBRI_PREFIXES = OUTBOUND_SIP_JIBRI_PREFIXES;
INBOUND_SIP_JIBRI_PREFIXES = INBOUND_SIP_JIBRI_PREFIXES;
Expand Down

0 comments on commit fa801b4

Please sign in to comment.