Skip to content

Commit 5a34020

Browse files
committed
WebAdmin: Move content to commands; new pages; hook changes; new commands
Also: - Added support to view user subpages in the menu - Webadmin hooks now get the full request - New commands added to be used in webadmin pages
1 parent 2b1d4ff commit 5a34020

11 files changed

+2722
-1902
lines changed

src/ejabberd_acme.erl

+24
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,16 @@
3232
%% gen_server callbacks
3333
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
3434
terminate/2, code_change/3]).
35+
%% WebAdmin
36+
-export([webadmin_menu_node/3, webadmin_page_node/3]).
3537

3638
-include("logger.hrl").
3739
-include("ejabberd_commands.hrl").
40+
-include("ejabberd_http.hrl").
41+
-include("ejabberd_web_admin.hrl").
3842
-include_lib("public_key/include/public_key.hrl").
3943
-include_lib("stdlib/include/ms_transform.hrl").
44+
-include_lib("xmpp/include/xmpp.hrl").
4045

4146
-define(CALL_TIMEOUT, timer:minutes(10)).
4247

@@ -108,6 +113,8 @@ init([]) ->
108113
ejabberd_hooks:add(config_reloaded, ?MODULE, register_certfiles, 40),
109114
ejabberd_hooks:add(ejabberd_started, ?MODULE, ejabberd_started, 110),
110115
ejabberd_hooks:add(config_reloaded, ?MODULE, ejabberd_started, 110),
116+
ejabberd_hooks:add(webadmin_menu_node, ?MODULE, webadmin_menu_node, 110),
117+
ejabberd_hooks:add(webadmin_page_node, ?MODULE, webadmin_page_node, 110),
111118
ejabberd_commands:register_commands(get_commands_spec()),
112119
register_certfiles(),
113120
{ok, #state{}}.
@@ -153,6 +160,8 @@ terminate(_Reason, _State) ->
153160
ejabberd_hooks:delete(config_reloaded, ?MODULE, register_certfiles, 40),
154161
ejabberd_hooks:delete(ejabberd_started, ?MODULE, ejabberd_started, 110),
155162
ejabberd_hooks:delete(config_reloaded, ?MODULE, ejabberd_started, 110),
163+
ejabberd_hooks:delete(webadmin_menu_node, ?MODULE, webadmin_menu_node, 110),
164+
ejabberd_hooks:delete(webadmin_page_node, ?MODULE, webadmin_page_node, 110),
156165
ejabberd_commands:unregister_commands(get_commands_spec()).
157166

158167
code_change(_OldVsn, State, _Extra) ->
@@ -547,6 +556,21 @@ list_certificates() ->
547556
{Domain, Path, sets:is_element(E, Used)}
548557
end, Known)).
549558

559+
%%%===================================================================
560+
%%% WebAdmin
561+
%%%===================================================================
562+
563+
webadmin_menu_node(Acc, _Node, _Lang) ->
564+
Acc ++ [{<<"acme">>, <<"ACME">>}].
565+
566+
webadmin_page_node(_, Node, #request{path = [<<"acme">>]} = R) ->
567+
Head = ?H1GLraw(<<"ACME Certificates">>, <<"admin/configuration/basic/#acme">>, <<"ACME">>),
568+
Set = [ejabberd_cluster:call(Node, ejabberd_web_admin, make_command, [request_certificate, R]),
569+
ejabberd_cluster:call(Node, ejabberd_web_admin, make_command, [revoke_certificate, R])],
570+
Get = [ejabberd_cluster:call(Node, ejabberd_web_admin, make_command, [list_certificates, R])],
571+
{stop, Head ++ Get ++ Set};
572+
webadmin_page_node(Acc, _, _) -> Acc.
573+
550574
%%%===================================================================
551575
%%% Other stuff
552576
%%%===================================================================

0 commit comments

Comments
 (0)