Skip to content

Commit b1ab280

Browse files
committed
ejabberd_web_admin: Show menu system only when can view vhosts
1 parent 849d239 commit b1ab280

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/ejabberd_web_admin.erl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ make_xhtml(Els, Host, Node, Request, JID, Level) ->
305305
make_xhtml(Els, Host, Node, Username, #request{lang = Lang} = R, JID, Level) ->
306306
Base = get_base_path_sum(0, 0, Level),
307307
MenuItems = make_navigation(Host, Node, Username, Lang, JID, Level)
308-
++ make_login_items(R, Level),
308+
++ make_login_items(R, Level, JID),
309309
{200, [html],
310310
#xmlel{name = <<"html">>,
311311
attrs =
@@ -1645,7 +1645,7 @@ any_rules_allowed(Host, Access, Entity) ->
16451645

16461646
%%% @format-begin
16471647

1648-
make_login_items(#request{us = {Username, Host}} = R, Level) ->
1648+
make_login_items(#request{us = {Username, Host}} = R, Level, JID) ->
16491649
UserBin =
16501650
jid:encode(
16511651
jid:make(Username, Host, <<"">>)),
@@ -1661,7 +1661,7 @@ make_login_items(#request{us = {Username, Host}} = R, Level) ->
16611661
_ ->
16621662
UserEl
16631663
end,
1664-
MenuPost =
1664+
MenuPost1 =
16651665
case ejabberd_hooks:run_fold(webadmin_menu_system_post, [], [R, Level]) of
16661666
[] ->
16671667
[];
@@ -1671,6 +1671,14 @@ make_login_items(#request{us = {Username, Host}} = R, Level) ->
16711671
[{<<"id">>, <<"navitemlogin">>}],
16721672
[?XE(<<"ul">>, PostElements)]}]
16731673
end,
1674+
MenuInside1 = ejabberd_hooks:run_fold(webadmin_menu_system_inside, [], [R, Level]),
1675+
{MenuInside, MenuPost} =
1676+
case list_vhosts_allowed(JID) of
1677+
[] ->
1678+
{[], []};
1679+
[_ | _] ->
1680+
{MenuInside1, MenuPost1}
1681+
end,
16741682
[{xmlel,
16751683
<<"li">>,
16761684
[{<<"id">>, <<"navitemlogin-start">>}],
@@ -1685,7 +1693,7 @@ make_login_items(#request{us = {Username, Host}} = R, Level) ->
16851693
[{<<"sentence">>, misc:atom_to_binary(node())}],
16861694
[{only, value},
16871695
{result_links, [{sentence, node, Level, <<"">>}]}])])]
1688-
++ ejabberd_hooks:run_fold(webadmin_menu_system_inside, [], [R, Level])
1696+
++ MenuInside
16891697
++ [?LI([?C(unicode:characters_to_binary("📤")),
16901698
?AC(<<(binary:copy(<<"../">>, Level))/binary, "logout/">>,
16911699
<<"Logout">>)])])]}]

0 commit comments

Comments
 (0)