1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-03 17:59:31 +02:00

mod_block_strangers: Bounce groupchat to bare JID

If a blocked message is of type 'groupchat', address the error message
to the bare JID (rather than sending it as MUC PM).
This commit is contained in:
Holger Weiss 2018-01-24 11:49:31 +01:00
parent 1f6c0022dd
commit e8f1de8785

View file

@ -106,7 +106,8 @@ check_message(#message{from = From, to = To, lang = Lang} = Msg) ->
Drop -> Drop ->
Txt = <<"Messages from strangers are rejected">>, Txt = <<"Messages from strangers are rejected">>,
Err = xmpp:err_policy_violation(Txt, Lang), Err = xmpp:err_policy_violation(Txt, Lang),
ejabberd_router:route_error(Msg, Err), Msg1 = maybe_adjust_from(Msg),
ejabberd_router:route_error(Msg1, Err),
deny; deny;
true -> true ->
allow allow
@ -118,6 +119,12 @@ check_message(#message{from = From, to = To, lang = Lang} = Msg) ->
allow allow
end. end.
-spec maybe_adjust_from(message()) -> message().
maybe_adjust_from(#message{type = groupchat, from = From} = Msg) ->
Msg#message{from = jid:remove_resource(From)};
maybe_adjust_from(#message{} = Msg) ->
Msg.
-spec check_subscription(jid(), jid()) -> none | some. -spec check_subscription(jid(), jid()) -> none | some.
check_subscription(From, To) -> check_subscription(From, To) ->
{LocalUser, LocalServer, _} = jid:tolower(To), {LocalUser, LocalServer, _} = jid:tolower(To),