From 59ec3d36f4baf44cad86ab92ab0426291a575c6f Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 24 Sep 2017 15:04:09 +0200 Subject: [PATCH] mod_mam: Simplify check for anon MUC JID filtering Refuse filtering anon MUC MAM queries by JID even if it's the client's own JID. Clients probably won't perform such queries in practice, so the additional complexity is unnecessary. --- src/mod_mam.erl | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/mod_mam.erl b/src/mod_mam.erl index a4dc62b01..a009a9164 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -863,7 +863,7 @@ select(_LServer, JidRequestor, JidArchive, Query, RSM, {Msgs, true, L} end; select(LServer, JidRequestor, JidArchive, Query, RSM, MsgType) -> - case might_expose_jid(JidRequestor, Query, MsgType) of + case might_expose_jid(Query, MsgType) of true -> {[], true, 0}; false -> @@ -993,22 +993,11 @@ match_rsm(Now, #rsm_set{before = ID}) when is_binary(ID), ID /= <<"">> -> match_rsm(_Now, _) -> true. -might_expose_jid(JidRequestor, Query, {groupchat, Role, - #state{config = #config{anonymous = true}}}) +might_expose_jid(Query, + {groupchat, Role, #state{config = #config{anonymous = true}}}) when Role /= moderator -> - case proplists:get_value(with, Query) of - undefined -> - false; - With -> - case {jid:remove_resource(jid:tolower(With)), - jid:remove_resource(jid:tolower(JidRequestor))} of - {J, J} -> - false; - _ -> - true - end - end; -might_expose_jid(_JidRequestor, _Query, _MsgType) -> + proplists:is_defined(with, Query); +might_expose_jid(_Query, _MsgType) -> false. get_jids(undefined) ->