diff options
author | Alexey Shchepin <alexey@process-one.net> | 2007-06-26 18:00:36 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2007-06-26 18:00:36 +0000 |
commit | ef7e43b2dc8ba4020f0dd4b130fb3f5e6802e06b (patch) | |
tree | 58fd15d2b71a271833a3da4f9ee60d8b7edf559c | |
parent | * doc/guide.tex: Typos (diff) |
* src/mod_muc/mod_muc_room.erl: Include <body/> in MUC invitations
for older clients (thanks to Michael Scherer)
SVN Revision: 796
Diffstat (limited to '')
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 33 |
2 files changed, 35 insertions, 3 deletions
@@ -1,3 +1,8 @@ +2007-06-26 Alexey Shchepin <alexey@sevcom.net> + + * src/mod_muc/mod_muc_room.erl: Include <body/> in MUC invitations + for older clients (thanks to Michael Scherer) + 2007-06-25 Mickael Remond <mickael.remond@process-one.net> * doc/guide.tex: Typos diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index ef465768..4aa65521 100644 --- a/src/mod_muc/mod_muc_room.erl +++ b/src/mod_muc/mod_muc_room.erl @@ -205,7 +205,7 @@ normal_state({route, From, "", From, Err), {next_state, normal_state, StateData}; Type when (Type == "") or (Type == "normal") -> - case catch check_invitation(From, Els, StateData) of + case catch check_invitation(From, Els, Lang, StateData) of {error, Error} -> Err = jlib:make_error_reply( Packet, Error), @@ -2625,7 +2625,7 @@ get_title(StateData) -> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Invitation support -check_invitation(From, Els, StateData) -> +check_invitation(From, Els, Lang, StateData) -> FAffiliation = get_affiliation(From, StateData), CanInvite = (StateData#state.config)#config.allow_user_invites orelse (FAffiliation == admin) orelse (FAffiliation == owner), @@ -2675,6 +2675,32 @@ check_invitation(From, Els, StateData) -> _ -> [] end, + Body = + {xmlelement, "body", [], + [{xmlcdata, + lists:flatten( + io_lib:format( + translate:translate( + Lang, + "You have been invited to ~s by ~s"), + [jlib:jid_to_string({StateData#state.room, + StateData#state.host, + ""}), + jlib:jid_to_string(From)])) ++ + case (StateData#state.config)#config.password_protected of + true -> + ", " ++ + translate:translate(Lang, "the password is") ++ + " '" ++ + (StateData#state.config)#config.password ++ "'"; + _ -> + "" + end ++ + case Reason of + "" -> ""; + _ -> " (" ++ Reason ++ ") " + end + }]}, Msg = {xmlelement, "message", [{"type", "normal"}], @@ -2685,7 +2711,8 @@ check_invitation(From, Els, StateData) -> {StateData#state.room, StateData#state.host, ""})}], - [{xmlcdata, Reason}]}]}, + [{xmlcdata, Reason}]}, + Body]}, ejabberd_router:route(StateData#state.jid, JID, Msg), JID end. |