mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-20 17:27:00 +01:00
Move some modules webadmin pages to their modules
This commit is contained in:
parent
31b85351f2
commit
c2d4f73893
@ -2206,13 +2206,7 @@ web_page_host(Acc, _, _) ->
|
||||
%%% HostUser
|
||||
|
||||
web_menu_hostuser(Acc, _Host, _Username, _Lang) ->
|
||||
Acc
|
||||
++ [{<<"auth">>, <<"Authentication">>},
|
||||
{<<"mam">>, <<"MAM">>},
|
||||
{<<"privacy">>, <<"Privacy Lists">>},
|
||||
{<<"private">>, <<"Private XML Storage">>},
|
||||
{<<"session">>, <<"Sessions">>},
|
||||
{<<"vcard">>, <<"vCard">>}].
|
||||
Acc ++ [{<<"auth">>, <<"Authentication">>}, {<<"session">>, <<"Sessions">>}].
|
||||
|
||||
web_page_hostuser(_, Host, User, #request{path = [<<"auth">>]} = R) ->
|
||||
Ban = make_command(ban_account,
|
||||
@ -2242,26 +2236,6 @@ web_page_hostuser(_, Host, User, #request{path = [<<"auth">>]} = R) ->
|
||||
[{<<"user">>, User}, {<<"host">>, Host}],
|
||||
[{style, danger}])],
|
||||
{stop, Res};
|
||||
web_page_hostuser(_, Host, User, #request{path = [<<"mam">>]} = R) ->
|
||||
Res = ?H1GL(<<"MAM">>, <<"modules/#mod_mam">>, <<"mod_mam">>)
|
||||
++ [make_command(remove_mam_for_user,
|
||||
R,
|
||||
[{<<"user">>, User}, {<<"host">>, Host}],
|
||||
[{style, danger}]),
|
||||
make_command(remove_mam_for_user_with_peer,
|
||||
R,
|
||||
[{<<"user">>, User}, {<<"host">>, Host}],
|
||||
[{style, danger}])],
|
||||
{stop, Res};
|
||||
web_page_hostuser(_, Host, User, #request{path = [<<"privacy">>]} = R) ->
|
||||
Res = ?H1GL(<<"Privacy Lists">>, <<"modules/#mod_privacy">>, <<"mod_privacy">>)
|
||||
++ [make_command(privacy_set, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
{stop, Res};
|
||||
web_page_hostuser(_, Host, User, #request{path = [<<"private">>]} = R) ->
|
||||
Res = ?H1GL(<<"Private XML Storage">>, <<"modules/#mod_private">>, <<"mod_private">>)
|
||||
++ [make_command(private_set, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(private_get, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
{stop, Res};
|
||||
web_page_hostuser(_, Host, User, #request{path = [<<"session">>]} = R) ->
|
||||
Head = [?XC(<<"h1">>, <<"Sessions">>), ?BR],
|
||||
Set = [make_command(resource_num, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
@ -2280,47 +2254,6 @@ web_page_hostuser(_, Host, User, #request{path = [<<"session">>]} = R) ->
|
||||
make_command(get_presence, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(num_resources, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
{stop, Head ++ Get ++ Set};
|
||||
web_page_hostuser(_, Host, User, #request{path = [<<"vcard">>]} = R) ->
|
||||
Head = ?H1GL(<<"vCard">>, <<"modules/#mod_vcard">>, <<"mod_vcard">>),
|
||||
Set = [make_command(set_nickname, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(set_vcard, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(set_vcard2, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(set_vcard2_multi, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
timer:sleep(100), % setting vcard takes a while, let's delay the get commands
|
||||
FieldNames = [<<"VERSION">>, <<"FN">>, <<"NICKNAME">>, <<"BDAY">>],
|
||||
FieldNames2 =
|
||||
[{<<"N">>, <<"FAMILY">>},
|
||||
{<<"N">>, <<"GIVEN">>},
|
||||
{<<"N">>, <<"MIDDLE">>},
|
||||
{<<"ADR">>, <<"CTRY">>},
|
||||
{<<"ADR">>, <<"LOCALITY">>},
|
||||
{<<"EMAIL">>, <<"USERID">>}],
|
||||
Get = [make_command(get_vcard, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
?XE(<<"blockquote">>,
|
||||
[make_table([<<"name">>, <<"value">>],
|
||||
[{?C(FieldName),
|
||||
make_command(get_vcard,
|
||||
R,
|
||||
[{<<"user">>, User},
|
||||
{<<"host">>, Host},
|
||||
{<<"name">>, FieldName}],
|
||||
[{only, value}])}
|
||||
|| FieldName <- FieldNames])]),
|
||||
make_command(get_vcard2, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
?XE(<<"blockquote">>,
|
||||
[make_table([<<"name">>, <<"subname">>, <<"value">>],
|
||||
[{?C(FieldName),
|
||||
?C(FieldSubName),
|
||||
make_command(get_vcard2,
|
||||
R,
|
||||
[{<<"user">>, User},
|
||||
{<<"host">>, Host},
|
||||
{<<"name">>, FieldName},
|
||||
{<<"subname">>, FieldSubName}],
|
||||
[{only, value}])}
|
||||
|| {FieldName, FieldSubName} <- FieldNames2])]),
|
||||
make_command(get_vcard2_multi, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
{stop, Head ++ Get ++ Set};
|
||||
web_page_hostuser(Acc, _, _, _) ->
|
||||
Acc.
|
||||
|
||||
|
@ -40,8 +40,14 @@
|
||||
import_start/2, import_stop/2, import/5, import_info/0,
|
||||
mod_opt_type/1, mod_options/1, depends/2]).
|
||||
|
||||
-export([webadmin_menu_hostuser/4, webadmin_page_hostuser/4]).
|
||||
|
||||
-import(ejabberd_web_admin, [make_command/4, make_command/2]).
|
||||
|
||||
-include("logger.hrl").
|
||||
-include_lib("xmpp/include/xmpp.hrl").
|
||||
-include("ejabberd_http.hrl").
|
||||
-include("ejabberd_web_admin.hrl").
|
||||
-include("mod_privacy.hrl").
|
||||
-include("translate.hrl").
|
||||
|
||||
@ -78,6 +84,8 @@ start(Host, Opts) ->
|
||||
{hook, user_send_packet, user_send_packet, 50},
|
||||
{hook, privacy_check_packet, check_packet, 50},
|
||||
{hook, remove_user, remove_user, 50},
|
||||
{hook, webadmin_menu_hostuser, webadmin_menu_hostuser, 50},
|
||||
{hook, webadmin_page_hostuser, webadmin_page_hostuser, 50},
|
||||
{iq_handler, ejabberd_sm, ?NS_PRIVACY, process_iq}]}.
|
||||
|
||||
stop(_Host) ->
|
||||
@ -840,6 +848,24 @@ export(LServer) ->
|
||||
Mod = gen_mod:db_mod(LServer, ?MODULE),
|
||||
Mod:export(LServer).
|
||||
|
||||
%%%
|
||||
%%% WebAdmin
|
||||
%%%
|
||||
|
||||
webadmin_menu_hostuser(Acc, _Host, _Username, _Lang) ->
|
||||
Acc ++ [{<<"privacy">>, <<"Privacy Lists">>}].
|
||||
|
||||
webadmin_page_hostuser(_, Host, User,
|
||||
#request{us = _US, path = [<<"privacy">>]} = R) ->
|
||||
Res = ?H1GL(<<"Privacy Lists">>, <<"modules/#mod_privacy">>, <<"mod_privacy">>)
|
||||
++ [make_command(privacy_set, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
{stop, Res};
|
||||
webadmin_page_hostuser(Acc, _, _, _) -> Acc.
|
||||
|
||||
%%%
|
||||
%%% Documentation
|
||||
%%%
|
||||
|
||||
depends(_Host, _Opts) ->
|
||||
[].
|
||||
|
||||
|
@ -41,10 +41,16 @@
|
||||
|
||||
-export([get_commands_spec/0, bookmarks_to_pep/2]).
|
||||
|
||||
-export([webadmin_menu_hostuser/4, webadmin_page_hostuser/4]).
|
||||
|
||||
-import(ejabberd_web_admin, [make_command/4, make_command/2]).
|
||||
|
||||
-include("logger.hrl").
|
||||
-include_lib("xmpp/include/xmpp.hrl").
|
||||
-include("mod_private.hrl").
|
||||
-include("ejabberd_commands.hrl").
|
||||
-include("ejabberd_http.hrl").
|
||||
-include("ejabberd_web_admin.hrl").
|
||||
-include("translate.hrl").
|
||||
-include("pubsub.hrl").
|
||||
|
||||
@ -71,6 +77,8 @@ start(Host, Opts) ->
|
||||
{hook, pubsub_publish_item, pubsub_publish_item, 50},
|
||||
{hook, pubsub_delete_item, pubsub_delete_item, 50},
|
||||
{hook, pubsub_tree_call, pubsub_tree_call, 50},
|
||||
{hook, webadmin_menu_hostuser, webadmin_menu_hostuser, 50},
|
||||
{hook, webadmin_page_hostuser, webadmin_page_hostuser, 50},
|
||||
{iq_handler, ejabberd_sm, ?NS_PRIVATE, process_sm_iq}]}.
|
||||
|
||||
stop(Host) ->
|
||||
@ -544,6 +552,21 @@ bookmarks_to_pep(User, Server) ->
|
||||
{error, <<"Cannot retrieve bookmarks from private XML storage">>}
|
||||
end.
|
||||
|
||||
%%%===================================================================
|
||||
%%% WebAdmin
|
||||
%%%===================================================================
|
||||
|
||||
webadmin_menu_hostuser(Acc, _Host, _Username, _Lang) ->
|
||||
Acc ++ [{<<"private">>, <<"Private XML Storage">>}].
|
||||
|
||||
webadmin_page_hostuser(_, Host, User,
|
||||
#request{path = [<<"private">>]} = R) ->
|
||||
Res = ?H1GL(<<"Private XML Storage">>, <<"modules/#mod_private">>, <<"mod_private">>)
|
||||
++ [make_command(private_set, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(private_get, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
{stop, Res};
|
||||
webadmin_page_hostuser(Acc, _, _, _) -> Acc.
|
||||
|
||||
%%%===================================================================
|
||||
%%% Cache
|
||||
%%%===================================================================
|
||||
|
@ -43,12 +43,17 @@
|
||||
-export([init/1, handle_call/3, handle_cast/2,
|
||||
handle_info/2, terminate/2, code_change/3]).
|
||||
-export([route/1]).
|
||||
-export([webadmin_menu_hostuser/4, webadmin_page_hostuser/4]).
|
||||
|
||||
-import(ejabberd_web_admin, [make_command/4, make_command/2, make_table/2]).
|
||||
|
||||
-include("logger.hrl").
|
||||
-include_lib("xmpp/include/xmpp.hrl").
|
||||
-include("mod_vcard.hrl").
|
||||
-include("translate.hrl").
|
||||
-include("ejabberd_stacktrace.hrl").
|
||||
-include("ejabberd_http.hrl").
|
||||
-include("ejabberd_web_admin.hrl").
|
||||
|
||||
-define(VCARD_CACHE, vcard_cache).
|
||||
|
||||
@ -98,6 +103,8 @@ init([Host|_]) ->
|
||||
ejabberd_hooks:add(disco_sm_features, Host, ?MODULE,
|
||||
get_sm_features, 50),
|
||||
ejabberd_hooks:add(vcard_iq_set, Host, ?MODULE, vcard_iq_set, 50),
|
||||
ejabberd_hooks:add(webadmin_menu_hostuser, Host, ?MODULE, webadmin_menu_hostuser, 50),
|
||||
ejabberd_hooks:add(webadmin_page_hostuser, Host, ?MODULE, webadmin_page_hostuser, 50),
|
||||
MyHosts = gen_mod:get_opt_hosts(Opts),
|
||||
Search = mod_vcard_opt:search(Opts),
|
||||
if Search ->
|
||||
@ -161,6 +168,8 @@ terminate(_Reason, #state{hosts = MyHosts, server_host = Host}) ->
|
||||
gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_VCARD),
|
||||
ejabberd_hooks:delete(disco_sm_features, Host, ?MODULE, get_sm_features, 50),
|
||||
ejabberd_hooks:delete(vcard_iq_set, Host, ?MODULE, vcard_iq_set, 50),
|
||||
ejabberd_hooks:delete(webadmin_menu_hostuser, Host, ?MODULE, webadmin_menu_hostuser, 50),
|
||||
ejabberd_hooks:delete(webadmin_page_hostuser, Host, ?MODULE, webadmin_page_hostuser, 50),
|
||||
Mod = gen_mod:db_mod(Host, ?MODULE),
|
||||
Mod:stop(Host),
|
||||
lists:foreach(
|
||||
@ -554,6 +563,61 @@ export(LServer) ->
|
||||
Mod = gen_mod:db_mod(LServer, ?MODULE),
|
||||
Mod:export(LServer).
|
||||
|
||||
%%%
|
||||
%%% WebAdmin
|
||||
%%%
|
||||
|
||||
webadmin_menu_hostuser(Acc, _Host, _Username, _Lang) ->
|
||||
Acc ++ [{<<"vcard">>, <<"vCard">>}].
|
||||
|
||||
webadmin_page_hostuser(_, Host, User,
|
||||
#request{path = [<<"vcard">>]} = R) ->
|
||||
Head = ?H1GL(<<"vCard">>, <<"modules/#mod_vcard">>, <<"mod_vcard">>),
|
||||
Set = [make_command(set_nickname, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(set_vcard, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(set_vcard2, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
make_command(set_vcard2_multi, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
timer:sleep(100), % setting vcard takes a while, let's delay the get commands
|
||||
FieldNames = [<<"VERSION">>, <<"FN">>, <<"NICKNAME">>, <<"BDAY">>],
|
||||
FieldNames2 =
|
||||
[{<<"N">>, <<"FAMILY">>},
|
||||
{<<"N">>, <<"GIVEN">>},
|
||||
{<<"N">>, <<"MIDDLE">>},
|
||||
{<<"ADR">>, <<"CTRY">>},
|
||||
{<<"ADR">>, <<"LOCALITY">>},
|
||||
{<<"EMAIL">>, <<"USERID">>}],
|
||||
Get = [make_command(get_vcard, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
?XE(<<"blockquote">>,
|
||||
[make_table([<<"name">>, <<"value">>],
|
||||
[{?C(FieldName),
|
||||
make_command(get_vcard,
|
||||
R,
|
||||
[{<<"user">>, User},
|
||||
{<<"host">>, Host},
|
||||
{<<"name">>, FieldName}],
|
||||
[{only, value}])}
|
||||
|| FieldName <- FieldNames])]),
|
||||
make_command(get_vcard2, R, [{<<"user">>, User}, {<<"host">>, Host}], []),
|
||||
?XE(<<"blockquote">>,
|
||||
[make_table([<<"name">>, <<"subname">>, <<"value">>],
|
||||
[{?C(FieldName),
|
||||
?C(FieldSubName),
|
||||
make_command(get_vcard2,
|
||||
R,
|
||||
[{<<"user">>, User},
|
||||
{<<"host">>, Host},
|
||||
{<<"name">>, FieldName},
|
||||
{<<"subname">>, FieldSubName}],
|
||||
[{only, value}])}
|
||||
|| {FieldName, FieldSubName} <- FieldNames2])]),
|
||||
make_command(get_vcard2_multi, R, [{<<"user">>, User}, {<<"host">>, Host}], [])],
|
||||
{stop, Head ++ Get ++ Set};
|
||||
webadmin_page_hostuser(Acc, _, _, _) -> Acc.
|
||||
|
||||
%%%
|
||||
%%% Documentation
|
||||
%%%
|
||||
|
||||
depends(_Host, _Opts) ->
|
||||
[].
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user