aboutsummaryrefslogtreecommitdiff
path: root/src/mod_configure.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_configure.erl')
-rw-r--r--src/mod_configure.erl71
1 files changed, 34 insertions, 37 deletions
diff --git a/src/mod_configure.erl b/src/mod_configure.erl
index 9e6e83e1c..5e0117047 100644
--- a/src/mod_configure.erl
+++ b/src/mod_configure.erl
@@ -5,7 +5,7 @@
%%% Created : 19 Jan 2003 by Alexey Shchepin <alexey@process-one.net>
%%%
%%%
-%%% ejabberd, Copyright (C) 2002-2015 ProcessOne
+%%% ejabberd, Copyright (C) 2002-2016 ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
@@ -23,33 +23,29 @@
%%%
%%%----------------------------------------------------------------------
-%%% Implements most of XEP-0133: Service Administration Version 1.1
-%%% (2005-08-19)
-
-module(mod_configure).
-author('alexey@process-one.net').
+-protocol({xep, 133, '1.1'}).
+
-behaviour(gen_mod).
-export([start/2, stop/1, get_local_identity/5,
get_local_features/5, get_local_items/5,
adhoc_local_items/4, adhoc_local_commands/4,
get_sm_identity/5, get_sm_features/5, get_sm_items/5,
- adhoc_sm_items/4, adhoc_sm_commands/4]).
+ adhoc_sm_items/4, adhoc_sm_commands/4, mod_opt_type/1]).
-include("ejabberd.hrl").
-include("logger.hrl").
-include("jlib.hrl").
-
+-include("ejabberd_sm.hrl").
-include("adhoc.hrl").
-define(T(Lang, Text), translate:translate(Lang, Text)).
-%% Copied from ejabberd_sm.erl
--record(session, {sid, usr, us, priority, info}).
-
start(Host, _Opts) ->
ejabberd_hooks:add(disco_local_items, Host, ?MODULE,
get_local_items, 50),
@@ -115,7 +111,7 @@ stop(Host) ->
-define(NODEJID(To, Name, Node),
#xmlel{name = <<"item">>,
attrs =
- [{<<"jid">>, jlib:jid_to_string(To)},
+ [{<<"jid">>, jid:to_string(To)},
{<<"name">>, ?T(Lang, Name)}, {<<"node">>, Node}],
children = []}).
@@ -293,7 +289,7 @@ adhoc_sm_items(Acc, From, #jid{lserver = LServer} = To,
end,
Nodes = [#xmlel{name = <<"item">>,
attrs =
- [{<<"jid">>, jlib:jid_to_string(To)},
+ [{<<"jid">>, jid:to_string(To)},
{<<"name">>, ?T(Lang, <<"Configuration">>)},
{<<"node">>, <<"config">>}],
children = []}],
@@ -354,7 +350,7 @@ adhoc_local_items(Acc, From,
Nodes = recursively_get_local_items(PermLev, LServer,
<<"">>, Server, Lang),
Nodes1 = lists:filter(fun (N) ->
- Nd = xml:get_tag_attr_s(<<"node">>, N),
+ Nd = fxml:get_tag_attr_s(<<"node">>, N),
F = get_local_features([], From, To, Nd,
Lang),
case F of
@@ -383,9 +379,9 @@ recursively_get_local_items(PermLev, LServer, Node,
{error, _Error} -> []
end,
Nodes = lists:flatten(lists:map(fun (N) ->
- S = xml:get_tag_attr_s(<<"jid">>,
+ S = fxml:get_tag_attr_s(<<"jid">>,
N),
- Nd = xml:get_tag_attr_s(<<"node">>,
+ Nd = fxml:get_tag_attr_s(<<"node">>,
N),
if (S /= Server) or
(Nd == <<"">>) ->
@@ -416,7 +412,7 @@ get_permission_level(JID) ->
allow ->
PermLev = get_permission_level(From),
case get_local_items({PermLev, LServer}, LNode,
- jlib:jid_to_string(To), Lang)
+ jid:to_string(To), Lang)
of
{result, Res} -> {result, Res};
{error, Error} -> {error, Error}
@@ -438,7 +434,7 @@ get_local_items(Acc, From, #jid{lserver = LServer} = To,
allow ->
PermLev = get_permission_level(From),
case get_local_items({PermLev, LServer}, [],
- jlib:jid_to_string(To), Lang)
+ jid:to_string(To), Lang)
of
{result, Res} -> {result, Items ++ Res};
{error, _Error} -> {result, Items}
@@ -986,7 +982,7 @@ get_form(_Host, [<<"running nodes">>, ENode, <<"DB">>],
case search_running_node(ENode) of
false -> {error, ?ERR_ITEM_NOT_FOUND};
Node ->
- case rpc:call(Node, mnesia, system_info, [tables]) of
+ case ejabberd_cluster:call(Node, mnesia, system_info, [tables]) of
{badrpc, _Reason} ->
{error, ?ERR_INTERNAL_SERVER_ERROR};
Tables ->
@@ -1008,7 +1004,7 @@ get_form(_Host, [<<"running nodes">>, ENode, <<"DB">>],
?T(Lang,
<<"Choose storage type of tables">>)}]}
| lists:map(fun (Table) ->
- case rpc:call(Node, mnesia,
+ case ejabberd_cluster:call(Node, mnesia,
table_info,
[Table,
storage_type])
@@ -1029,7 +1025,7 @@ get_form(Host,
case search_running_node(ENode) of
false -> {error, ?ERR_ITEM_NOT_FOUND};
Node ->
- case rpc:call(Node, gen_mod, loaded_modules, [Host]) of
+ case ejabberd_cluster:call(Node, gen_mod, loaded_modules, [Host]) of
{badrpc, _Reason} ->
{error, ?ERR_INTERNAL_SERVER_ERROR};
Modules ->
@@ -1608,7 +1604,7 @@ set_form(_From, Host,
case Vals of
[<<"1">>] ->
Module = jlib:binary_to_atom(Var),
- rpc:call(Node, gen_mod, stop_module,
+ ejabberd_cluster:call(Node, gen_mod, stop_module,
[Host, Module]);
_ -> ok
end
@@ -1635,7 +1631,7 @@ set_form(_From, Host,
case erl_parse:parse_term(Tokens) of
{ok, Modules} ->
lists:foreach(fun ({Module, Args}) ->
- rpc:call(Node, gen_mod,
+ ejabberd_cluster:call(Node, gen_mod,
start_module,
[Host, Module, Args])
end,
@@ -1657,7 +1653,7 @@ set_form(_From, _Host,
case lists:keysearch(<<"path">>, 1, XData) of
false -> {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
- case rpc:call(Node, mnesia, backup, [String]) of
+ case ejabberd_cluster:call(Node, mnesia, backup, [String]) of
{badrpc, _Reason} ->
{error, ?ERR_INTERNAL_SERVER_ERROR};
{error, _Reason} -> {error, ?ERR_INTERNAL_SERVER_ERROR};
@@ -1676,7 +1672,7 @@ set_form(_From, _Host,
case lists:keysearch(<<"path">>, 1, XData) of
false -> {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
- case rpc:call(Node, ejabberd_admin, restore, [String])
+ case ejabberd_cluster:call(Node, ejabberd_admin, restore, [String])
of
{badrpc, _Reason} ->
{error, ?ERR_INTERNAL_SERVER_ERROR};
@@ -1696,7 +1692,7 @@ set_form(_From, _Host,
case lists:keysearch(<<"path">>, 1, XData) of
false -> {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
- case rpc:call(Node, ejabberd_admin, dump_to_textfile,
+ case ejabberd_cluster:call(Node, ejabberd_admin, dump_to_textfile,
[String])
of
{badrpc, _Reason} ->
@@ -1716,7 +1712,7 @@ set_form(_From, _Host,
case lists:keysearch(<<"path">>, 1, XData) of
false -> {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
- rpc:call(Node, jd2ejd, import_file, [String]),
+ ejabberd_cluster:call(Node, jd2ejd, import_file, [String]),
{result, []};
_ -> {error, ?ERR_BAD_REQUEST}
end
@@ -1730,7 +1726,7 @@ set_form(_From, _Host,
case lists:keysearch(<<"path">>, 1, XData) of
false -> {error, ?ERR_BAD_REQUEST};
{value, {_, [String]}} ->
- rpc:call(Node, jd2ejd, import_dir, [String]),
+ ejabberd_cluster:call(Node, jd2ejd, import_dir, [String]),
{result, []};
_ -> {error, ?ERR_BAD_REQUEST}
end
@@ -1818,7 +1814,7 @@ set_form(From, Host, ?NS_ADMINL(<<"add-user">>), _Lang,
AccountString = get_value(<<"accountjid">>, XData),
Password = get_value(<<"password">>, XData),
Password = get_value(<<"password-verify">>, XData),
- AccountJID = jlib:string_to_jid(AccountString),
+ AccountJID = jid:from_string(AccountString),
User = AccountJID#jid.luser,
Server = AccountJID#jid.lserver,
true = lists:member(Server, ?MYHOSTS),
@@ -1832,7 +1828,7 @@ set_form(From, Host, ?NS_ADMINL(<<"delete-user">>),
XData),
[_ | _] = AccountStringList,
ASL2 = lists:map(fun (AccountString) ->
- JID = jlib:string_to_jid(AccountString),
+ JID = jid:from_string(AccountString),
User = JID#jid.luser,
Server = JID#jid.lserver,
true = Server == Host orelse
@@ -1847,7 +1843,7 @@ set_form(From, Host, ?NS_ADMINL(<<"delete-user">>),
set_form(From, Host, ?NS_ADMINL(<<"end-user-session">>),
Lang, XData) ->
AccountString = get_value(<<"accountjid">>, XData),
- JID = jlib:string_to_jid(AccountString),
+ JID = jid:from_string(AccountString),
LUser = JID#jid.luser,
LServer = JID#jid.lserver,
true = LServer == Host orelse
@@ -1873,7 +1869,7 @@ set_form(From, Host, ?NS_ADMINL(<<"end-user-session">>),
set_form(From, Host,
?NS_ADMINL(<<"get-user-password">>), Lang, XData) ->
AccountString = get_value(<<"accountjid">>, XData),
- JID = jlib:string_to_jid(AccountString),
+ JID = jid:from_string(AccountString),
User = JID#jid.luser,
Server = JID#jid.lserver,
true = Server == Host orelse
@@ -1893,7 +1889,7 @@ set_form(From, Host,
?NS_ADMINL(<<"change-user-password">>), _Lang, XData) ->
AccountString = get_value(<<"accountjid">>, XData),
Password = get_value(<<"password">>, XData),
- JID = jlib:string_to_jid(AccountString),
+ JID = jid:from_string(AccountString),
User = JID#jid.luser,
Server = JID#jid.lserver,
true = Server == Host orelse
@@ -1904,7 +1900,7 @@ set_form(From, Host,
set_form(From, Host,
?NS_ADMINL(<<"get-user-lastlogin">>), Lang, XData) ->
AccountString = get_value(<<"accountjid">>, XData),
- JID = jlib:string_to_jid(AccountString),
+ JID = jid:from_string(AccountString),
User = JID#jid.luser,
Server = JID#jid.lserver,
true = Server == Host orelse
@@ -1913,7 +1909,6 @@ set_form(From, Host,
Server)
of
[] ->
- _US = {User, Server},
case get_last_info(User, Server) of
not_found -> ?T(Lang, <<"Never">>);
{ok, Timestamp, _Status} ->
@@ -1940,7 +1935,7 @@ set_form(From, Host,
set_form(From, Host, ?NS_ADMINL(<<"user-stats">>), Lang,
XData) ->
AccountString = get_value(<<"accountjid">>, XData),
- JID = jlib:string_to_jid(AccountString),
+ JID = jid:from_string(AccountString),
User = JID#jid.luser,
Server = JID#jid.lserver,
true = Server == Host orelse
@@ -2023,17 +2018,17 @@ stop_node(From, Host, ENode, Action, XData) ->
#xmlel{name = <<"x">>,
attrs =
[{<<"xmlns">>,
- <<"jabber:x:data">>},
+ ?NS_XDATA},
{<<"type">>, <<"submit">>}],
children = SubEls},
others =
[#xmlel{name = <<"x">>,
attrs =
[{<<"xmlns">>,
- <<"jabber:x:data">>},
+ ?NS_XDATA},
{<<"type">>, <<"submit">>}],
children = SubEls}]},
- To = jlib:make_jid(<<"">>, Host, <<"">>),
+ To = jid:make(<<"">>, Host, <<"">>),
mod_announce:announce_commands(empty, From, To, Request)
end,
Time = timer:seconds(Delay),
@@ -2149,3 +2144,5 @@ set_sm_form(User, Server, <<"config">>,
end;
set_sm_form(_User, _Server, _Node, _Request, _Fields) ->
{error, ?ERR_SERVICE_UNAVAILABLE}.
+
+mod_opt_type(_) -> [].