view mod_muc_moderation_delay/mod_muc_moderation_delay.lua @ 6165:e977174082ee

mod_invites_register_api: Use set_password() for password resets Previously the code relied on the (weird) behaviour of create_user(), which would update the password for a user account if it already existed. This has several issues, and we plan to deprecate this behaviour of create_user(). The larger issue is that this route does not trigger the user-password-changed event, which can be a security problem. For example, it did not disconnect existing user sessions (this occurs in mod_c2s in response to the event). Switching to set_password() is the right thing to do
author Matthew Wild <mwild1@gmail.com>
date Thu, 06 Feb 2025 10:24:30 +0000
parents 959382fac20c
children
line wrap: on
line source

-- mod_muc_moderation_delay
--
-- SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
-- SPDX-License-Identifier: AGPL-3.0-only
--
-- This file is AGPL-v3 licensed.
-- Please see the Peertube livechat plugin copyright information.
-- https://livingston.frama.io/peertube-plugin-livechat/credits/
--

local add_disco_form = module:require("config").add_disco_form;
local config_submitted = module:require("config").config_submitted;
local add_form_option = module:require("config").add_form_option;
local handle_broadcast_message = module:require("delay").handle_broadcast_message;

-- form_position: the position in the room config form (this value will be passed as priority for the "muc-config-form" hook).
-- By default, field will be between muc#roomconfig_changesubject and muc#roomconfig_moderatedroom
local form_position = module:get_option_number("moderation_delay_form_position") or 80-2;

-- Plugin dependencies
local mod_muc = module:depends "muc";

-- muc-disco and muc-config to configure the feature:
module:hook("muc-disco#info", add_disco_form);
module:hook("muc-config-submitted/muc#roomconfig_moderation_delay", config_submitted);
module:hook("muc-config-form", add_form_option, form_position);

-- intercept muc-broadcast-message, and broadcast with delay if required.
-- Priority is negative, as we want it to be the last handler.
module:hook("muc-broadcast-message", handle_broadcast_message, -1000);