Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_muc_admin.erl')
-rw-r--r--src/mod_muc_admin.erl35
1 files changed, 15 insertions, 20 deletions
diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl
index feaa42b1f..2a6a0bb81 100644
--- a/src/mod_muc_admin.erl
+++ b/src/mod_muc_admin.erl
@@ -730,8 +730,7 @@ get_room_occupants_number(Room, Host) ->
send_direct_invitation(RoomName, RoomService, Password, Reason, UsersString) ->
RoomJid = jid:make(RoomName, RoomService, <<"">>),
- RoomString = jid:to_string(RoomJid),
- XmlEl = build_invitation(Password, Reason, RoomString),
+ XmlEl = build_invitation(Password, Reason, RoomJid),
UsersStrings = get_users_to_invite(RoomJid, UsersString),
[send_direct_invitation(RoomJid, UserStrings, XmlEl)
|| UserStrings <- UsersStrings],
@@ -759,24 +758,20 @@ get_users_to_invite(RoomJid, UsersString) ->
end,
UsersStrings).
-build_invitation(Password, Reason, RoomString) ->
- PasswordAttrList = case Password of
- <<"none">> -> [];
- _ -> [{<<"password">>, Password}]
- end,
- ReasonAttrList = case Reason of
- <<"none">> -> [];
- _ -> [{<<"reason">>, Reason}]
- end,
- XAttrs = [{<<"xmlns">>, ?NS_XCONFERENCE},
- {<<"jid">>, RoomString}]
- ++ PasswordAttrList
- ++ ReasonAttrList,
- XEl = {xmlel, <<"x">>, XAttrs, []},
- {xmlel, <<"message">>, [], [XEl]}.
-
-send_direct_invitation(FromJid, UserJid, XmlEl) ->
- ejabberd_router:route(FromJid, UserJid, XmlEl).
+build_invitation(Password, Reason, RoomJid) ->
+ Invite = #x_conference{jid = RoomJid,
+ password = case Password of
+ <<"none">> -> <<>>;
+ _ -> Password
+ end,
+ reason = case Reason of
+ <<"none">> -> <<>>;
+ _ -> Reason
+ end},
+ #message{sub_els = [Invite]}.
+
+send_direct_invitation(FromJid, UserJid, Msg) ->
+ ejabberd_router:route(xmpp:set_from_to(Msg, FromJid, UserJid)).
%%----------------------------
%% Change Room Option