* src/mod_muc/mod_muc_room.erl: Include <body/> in MUC invitations

for older clients (thanks to Michael Scherer)

SVN Revision: 796
This commit is contained in:
Alexey Shchepin 2007-06-26 18:00:36 +00:00
parent 6c3a79f9df
commit ef7e43b2dc
2 changed files with 35 additions and 3 deletions

View File

@ -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

View File

@ -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.