aboutsummaryrefslogtreecommitdiff
path: root/src/mod_shared_roster_mnesia.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_shared_roster_mnesia.erl')
-rw-r--r--src/mod_shared_roster_mnesia.erl18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/mod_shared_roster_mnesia.erl b/src/mod_shared_roster_mnesia.erl
index ca2e55e2f..ed4525041 100644
--- a/src/mod_shared_roster_mnesia.erl
+++ b/src/mod_shared_roster_mnesia.erl
@@ -15,21 +15,21 @@
delete_group/2, get_group_opts/2, set_group_opts/3,
get_user_groups/2, get_group_explicit_users/2,
get_user_displayed_groups/3, is_user_in_group/3,
- add_user_to_group/3, remove_user_from_group/3, import/2]).
+ add_user_to_group/3, remove_user_from_group/3, import/3]).
--include("jlib.hrl").
-include("mod_roster.hrl").
-include("mod_shared_roster.hrl").
-include("logger.hrl").
+-include("xmpp.hrl").
%%%===================================================================
%%% API
%%%===================================================================
init(_Host, _Opts) ->
- mnesia:create_table(sr_group,
+ ejabberd_mnesia:create(?MODULE, sr_group,
[{disc_copies, [node()]},
{attributes, record_info(fields, sr_group)}]),
- mnesia:create_table(sr_user,
+ ejabberd_mnesia:create(?MODULE, sr_user,
[{disc_copies, [node()]}, {type, bag},
{attributes, record_info(fields, sr_user)}]),
update_tables(),
@@ -119,10 +119,14 @@ remove_user_from_group(Host, US, Group) ->
F = fun () -> mnesia:delete_object(R) end,
mnesia:transaction(F).
-import(_LServer, #sr_group{} = G) ->
+import(LServer, <<"sr_group">>, [Group, SOpts, _TimeStamp]) ->
+ G = #sr_group{group_host = {Group, LServer},
+ opts = ejabberd_sql:decode_term(SOpts)},
mnesia:dirty_write(G);
-import(_LServer, #sr_user{} = U) ->
- mnesia:dirty_write(U).
+import(LServer, <<"sr_user">>, [SJID, Group, _TimeStamp]) ->
+ #jid{luser = U, lserver = S} = jid:from_string(SJID),
+ User = #sr_user{us = {U, S}, group_host = {Group, LServer}},
+ mnesia:dirty_write(User).
%%%===================================================================
%%% Internal functions