diff options
Diffstat (limited to 'src/mod_admin_extra.erl')
-rw-r--r-- | src/mod_admin_extra.erl | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 1b3b27d38..367196a07 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -560,8 +560,10 @@ get_commands_spec() -> desc = "Push template roster from file to a user", longdesc = "The text file must contain an erlang term: a list " "of tuples with username, servername, group and nick. Example:\n" - "[{\"user1\", \"localhost\", \"Workers\", \"User 1\"},\n" - " {\"user2\", \"localhost\", \"Workers\", \"User 2\"}].", + "[{<<\"user1\">>, <<\"localhost\">>, <<\"Workers\">>, <<\"User 1\">>},\n" + " {<<\"user2\">>, <<\"localhost\">>, <<\"Workers\">>, <<\"User 2\">>}].\n" + "When using UTF8 character encoding add /utf8 to certain string. Example:\n" + "[{<<\"user2\">>, <<\"localhost\">>, <<\"Workers\"/utf8>>, <<\"User 2\"/utf8>>}].", module = ?MODULE, function = push_roster, args = [{file, binary}, {user, binary}, {host, binary}], args_example = [<<"/home/ejabberd/roster.txt">>, <<"user1">>, <<"localhost">>], @@ -1152,8 +1154,7 @@ set_vcard_content(User, Server, Data, SomeContent) -> end, %% Build new vcard SubEl = {xmlel, <<"vCard">>, [{<<"xmlns">>,<<"vcard-temp">>}], A4}, - mod_vcard:set_vcard(User, jid:nameprep(Server), SubEl), - ok. + mod_vcard:set_vcard(User, jid:nameprep(Server), SubEl). take_vcard_tel(TelType, [{xmlel, <<"TEL">>, _, SubEls}=OldEl | OldEls], NewEls, Taken) -> {Taken2, NewEls2} = case lists:keymember(TelType, 2, SubEls) of @@ -1389,9 +1390,8 @@ private_set(Username, Host, ElementString) -> private_set2(Username, Host, Xml) -> NS = fxml:get_tag_attr_s(<<"xmlns">>, Xml), - mod_private:set_data(jid:nodeprep(Username), jid:nameprep(Host), - [{NS, Xml}]), - ok. + JID = jid:make(Username, Host), + mod_private:set_data(JID, [{NS, Xml}]). %%% %%% Shared Roster Groups @@ -1450,12 +1450,16 @@ srg_user_del(User, Host, Group, GroupHost) -> send_message(Type, From, To, Subject, Body) -> FromJID = jid:decode(From), ToJID = jid:decode(To), - Packet = build_packet(Type, Subject, Body), + Packet = build_packet(Type, Subject, Body, FromJID, ToJID), + State1 = #{jid => FromJID}, + ejabberd_hooks:run_fold(user_send_packet, FromJID#jid.lserver, {Packet, State1}, []), ejabberd_router:route(xmpp:set_from_to(Packet, FromJID, ToJID)). -build_packet(Type, Subject, Body) -> +build_packet(Type, Subject, Body, FromJID, ToJID) -> #message{type = misc:binary_to_atom(Type), body = xmpp:mk_text(Body), + from = FromJID, + to = ToJID, id = p1_rand:get_string(), subject = xmpp:mk_text(Subject)}. |