From 3479f88dab533adfeda26aeb2da1939198833dd7 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 4 Aug 2023 16:07:14 +0200 Subject: [PATCH] Pass MUC room private messages over the muc_filter_message too (#3397) --- src/mod_muc_room.erl | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index 22ac26184..1c1e8ee0a 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -622,13 +622,20 @@ normal_state({route, ToNick, jid:replace_resource(StateData#state.jid, FromNick), X = #muc_user{}, - PrivMsg = xmpp:set_from( - xmpp:set_subtag(Packet, X), - FromNickJID), - lists:foreach( - fun(ToJID) -> - ejabberd_router:route(xmpp:set_to(PrivMsg, ToJID)) - end, ToJIDs); + Packet2 = xmpp:set_subtag(Packet, X), + case ejabberd_hooks:run_fold(muc_filter_message, + StateData#state.server_host, + Packet2, + [StateData, FromNick]) of + drop -> + ok; + Packet3 -> + PrivMsg = xmpp:set_from(Packet3, FromNickJID), + lists:foreach( + fun(ToJID) -> + ejabberd_router:route(xmpp:set_to(PrivMsg, ToJID)) + end, ToJIDs) + end; true -> ErrText = ?T("You are not allowed to send private messages"), Err = xmpp:err_forbidden(ErrText, Lang),