mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-26 16:26:24 +01:00
now admins are able to see private rooms in disco (EJAB-1269)
This commit is contained in:
parent
7a76cabe26
commit
234280ddc7
@ -630,21 +630,9 @@ handle_event(_Event, StateName, StateData) ->
|
|||||||
%% {stop, Reason, Reply, NewStateData}
|
%% {stop, Reason, Reply, NewStateData}
|
||||||
%%----------------------------------------------------------------------
|
%%----------------------------------------------------------------------
|
||||||
handle_sync_event({get_disco_item, JID, Lang}, _From, StateName, StateData) ->
|
handle_sync_event({get_disco_item, JID, Lang}, _From, StateName, StateData) ->
|
||||||
case (StateData#state.config)#config.public_list of
|
Reply = get_roomdesc_reply(JID, StateData,
|
||||||
true ->
|
|
||||||
Reply = get_roomdesc_reply(StateData,
|
|
||||||
get_roomdesc_tail(StateData, Lang)),
|
get_roomdesc_tail(StateData, Lang)),
|
||||||
{reply, Reply, StateName, StateData};
|
{reply, Reply, StateName, StateData};
|
||||||
_ ->
|
|
||||||
case is_occupant_or_admin(JID, StateData) of
|
|
||||||
true ->
|
|
||||||
Reply = get_roomdesc_reply(StateData, get_roomdesc_tail(
|
|
||||||
StateData, Lang)),
|
|
||||||
{reply, Reply, StateName, StateData};
|
|
||||||
_ ->
|
|
||||||
{reply, false, StateName, StateData}
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
handle_sync_event(get_config, _From, StateName, StateData) ->
|
handle_sync_event(get_config, _From, StateName, StateData) ->
|
||||||
{reply, {ok, StateData#state.config}, StateName, StateData};
|
{reply, {ok, StateData#state.config}, StateName, StateData};
|
||||||
handle_sync_event(get_state, _From, StateName, StateData) ->
|
handle_sync_event(get_state, _From, StateName, StateData) ->
|
||||||
@ -3483,11 +3471,15 @@ get_title(StateData) ->
|
|||||||
Name
|
Name
|
||||||
end.
|
end.
|
||||||
|
|
||||||
get_roomdesc_reply(StateData, Tail) ->
|
get_roomdesc_reply(JID, StateData, Tail) ->
|
||||||
case ((StateData#state.config)#config.public == true) of
|
IsOccupantOrAdmin = is_occupant_or_admin(JID, StateData),
|
||||||
true ->
|
if (StateData#state.config)#config.public or IsOccupantOrAdmin ->
|
||||||
|
if (StateData#state.config)#config.public_list or IsOccupantOrAdmin ->
|
||||||
{item, get_title(StateData) ++ Tail};
|
{item, get_title(StateData) ++ Tail};
|
||||||
_ ->
|
true ->
|
||||||
|
{item, get_title(StateData)}
|
||||||
|
end;
|
||||||
|
true ->
|
||||||
false
|
false
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user