view mod_groups_shell/mod_groups_shell.lua @ 4730:1da4b815d2fe

mod_cloud_notify: Identify (and immediately push) urgent stanzas, e.g. calls This covers the following things: - A session that appears online, but has a broken TCP connection - Clients such as Siskin and Snikket iOS that require a push for calls to work It allows the stanza to be pushed immediately instead of waiting for the session to hibernate or an ack to timeout. It shouldn't break any existing cases.
author Matthew Wild <mwild1@gmail.com>
date Wed, 27 Oct 2021 19:12:03 +0100
parents 8b69e0b56db2
children
line wrap: on
line source

module:set_global()

local modulemanager = require "core.modulemanager";

local shell_env = module:shared("/*/admin_shell/env")

shell_env.groups = {};

function shell_env.groups:sync_group(host, group_id)
	local print = self.session.print;

	if not host then
		return false, "host not given"
	end

	local mod_groups = modulemanager.get_module(host, "groups_internal")
	if not mod_groups then
		return false, host .. " does not have mod_groups_internal loaded"
	end

	if not group_id then
		return false, "group id not given"
	end

	local ok, err = mod_groups.emit_member_events(group_id)
	if ok then
		return true, "Synchronised members"
	else
		return ok, err
	end
end