From 8f0e066135c72b2ee100e5ba5292718183e2738d Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 10 Aug 2018 17:46:47 +0200 Subject: In response with list of room subscriptions include also events (#2272) --- src/mod_muc_room.erl | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/mod_muc_room.erl') diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index 33c58e41..88bf4f09 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -586,7 +586,12 @@ handle_sync_event({muc_unsubscribe, From}, _From, StateName, StateData) -> {reply, {error, get_error_text(Err)}, StateName, StateData} end; handle_sync_event({is_subscribed, From}, _From, StateName, StateData) -> - IsSubs = ?DICT:is_key(jid:split(From), StateData#state.subscribers), + IsSubs = case (?DICT):find(jid:split(From), StateData#state.subscribers) of + {ok, #subscriber{nodes = Nodes}} -> + {true, Nodes}; + error -> + false + end, {reply, IsSubs, StateName, StateData}; handle_sync_event(_Event, _From, StateName, StateData) -> @@ -4090,11 +4095,11 @@ process_iq_mucsub(From, #iq{type = get, lang = Lang, FAffiliation = get_affiliation(From, StateData), FRole = get_role(From, StateData), if FRole == moderator; FAffiliation == owner; FAffiliation == admin -> - JIDs = dict:fold( - fun(_, #subscriber{jid = J}, Acc) -> - [J|Acc] + Subs = dict:fold( + fun(_, #subscriber{jid = J, nodes = Nodes}, Acc) -> + [#muc_subscription{jid = J, events = Nodes}|Acc] end, [], StateData#state.subscribers), - {result, #muc_subscriptions{list = JIDs}, StateData}; + {result, #muc_subscriptions{list = Subs}, StateData}; true -> Txt = <<"Moderator privileges required">>, {error, xmpp:err_forbidden(Txt, Lang)} -- cgit v1.2.3