Skip to content

Commit 5d2936f

Browse files
authored
Merge pull request #4579 from sstrigler/fix_roster_webadmin
fix (webadmin): don't crash in make_table for regular cmd buttons
2 parents 1e81033 + c631123 commit 5d2936f

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

src/ejabberd_web_admin.erl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1986,7 +1986,9 @@ filter_results(_, Result) ->
19861986

19871987
format_result(presentation, _ExecRes, PresentationEls, _ArgumentsEls, _ResultEls) ->
19881988
?XAE(<<"p">>, [{<<"class">>, <<"api">>}], PresentationEls);
1989-
format_result(button, _ExecRes, _PresentationEls, [Button], ResultEls) ->
1989+
format_result(button, _ExecRes, _PresentationEls, [Button], _ResultEls) ->
1990+
Button;
1991+
format_result(action_button, _ExecRes, _PresentationEls, [Button], ResultEls) ->
19901992
{ResultEls, Button};
19911993
format_result(result,
19921994
_ExecRes,
@@ -3009,7 +3011,7 @@ action_button_allowed(Name, Request, BaseArguments, Options, Cmd) ->
30093011
BaseArguments,
30103012
[]),
30113013
ResultEls = action_button_result_el(ExecRes, Request#request.lang, Name),
3012-
format_result(button, ExecRes, PresentationEls, ArgumentsEls, ResultEls).
3014+
format_result(action_button, ExecRes, PresentationEls, ArgumentsEls, ResultEls).
30133015

30143016
action_button_result_el(not_executed, _L, _N) ->
30153017
[];

test/webadmin_tests.erl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ send_recv/2, put_event/2, get_event/1]).
3131
-include("suite.hrl").
3232
-include_lib("stdlib/include/assert.hrl").
3333
-include("mod_invites.hrl").
34+
-include("mod_roster.hrl").
3435

3536
%%%===================================================================
3637
%%% API
@@ -43,6 +44,7 @@ single_cases() ->
4344
[single_test(login_page),
4445
single_test(welcome_page),
4546
single_test(user_page),
47+
single_test(user_roster_page),
4648
single_test(adduser),
4749
single_test(changepassword),
4850
single_test(removeuser),
@@ -71,6 +73,17 @@ user_page(Config) ->
7173
Body),
7274
?match({_, _}, binary:match(Body, <<"<title>ejabberd Web Admin">>)).
7375

76+
user_roster_page(Config) ->
77+
Server = ?config(server, Config),
78+
User = ?config(user, Config),
79+
mod_roster:set_roster(#roster{us = {User, Server}, jid = {<<"admin">>, Server, <<>>}}),
80+
URL = "server/" ++ binary_to_list(Server) ++ "/user/" ++ binary_to_list(misc:url_encode(User)) ++ "/roster/",
81+
Body = ?match({ok, {{"HTTP/1.1", 200, _}, _, Body}},
82+
httpc:request(get, {page(Config, URL), [basic_auth_header(Config)]}, [],
83+
[{body_format, binary}]),
84+
Body),
85+
?match({_, _}, binary:match(Body, <<"<title>ejabberd Web Admin">>)).
86+
7487
adduser(Config) ->
7588
User = <<"userwebadmin-", (?config(user, Config))/binary>>,
7689
Server = ?config(server, Config),

0 commit comments

Comments
 (0)