summaryrefslogtreecommitdiff
path: root/src/mod_configure.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-05-30 19:21:56 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2018-05-30 19:21:56 +0300
commit5e446d50a8f77b932449cd96a58f6cfa1af647a8 (patch)
tree5bfe35ebc060043b835f32cf1358a8fb15307b6c /src/mod_configure.erl
parentBump xmpp version in order to support language tags validation (diff)
Get rid of direct calls to 'session' Mnesia table
Fixes #2439
Diffstat (limited to 'src/mod_configure.erl')
-rw-r--r--src/mod_configure.erl32
1 files changed, 5 insertions, 27 deletions
diff --git a/src/mod_configure.erl b/src/mod_configure.erl
index 471e2bcd..74b3cc79 100644
--- a/src/mod_configure.erl
+++ b/src/mod_configure.erl
@@ -1552,39 +1552,17 @@ set_form(From, Host, ?NS_ADMINL(<<"delete-user">>),
|| {User, Server} <- ASL2],
{result, undefined};
set_form(From, Host, ?NS_ADMINL(<<"end-user-session">>),
- Lang, XData) ->
+ _Lang, XData) ->
AccountString = get_value(<<"accountjid">>, XData),
JID = jid:decode(AccountString),
- LUser = JID#jid.luser,
LServer = JID#jid.lserver,
true = LServer == Host orelse
get_permission_level(From) == global,
- Xmlelement = xmpp:serr_policy_violation(<<"has been kicked">>, Lang),
case JID#jid.lresource of
- <<>> ->
- SIs = mnesia:dirty_select(session,
- [{#session{usr = {LUser, LServer, '_'},
- sid = '$1',
- info = '$2',
- _ = '_'},
- [], [{{'$1', '$2'}}]}]),
- Pids = [P || {{_, P}, Info} <- SIs,
- not proplists:get_bool(offline, Info)],
- lists:foreach(fun(Pid) ->
- Pid ! {kick, kicked_by_admin, Xmlelement}
- end, Pids);
- R ->
- [{{_, Pid}, Info}] = mnesia:dirty_select(
- session,
- [{#session{usr = {LUser, LServer, R},
- sid = '$1',
- info = '$2',
- _ = '_'},
- [], [{{'$1', '$2'}}]}]),
- case proplists:get_bool(offline, Info) of
- true -> ok;
- false -> Pid ! {kick, kicked_by_admin, Xmlelement}
- end
+ <<>> ->
+ ejabberd_sm:kick_user(JID#jid.luser, JID#jid.lserver);
+ R ->
+ ejabberd_sm:kick_user(JID#jid.luser, JID#jid.lserver, R)
end,
{result, undefined};
set_form(From, Host,