aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBadlop <badlop@process-one.net>2008-05-12 20:35:43 +0000
committerBadlop <badlop@process-one.net>2008-05-12 20:35:43 +0000
commitda56452fbadf1f1ac960680188098fd2dbf2bd76 (patch)
tree863149c767e05b0e96d7399dc6017d1ef5049eb4 /src
parent* src/web/ejabberd_http.erl (parse_auth): Allow password that (diff)
* src/mod_muc/mod_muc_room.erl: Return Forbidden error message
when user sends private message in a room that disallows it (EJAB-595) SVN Revision: 1323
Diffstat (limited to 'src')
-rw-r--r--src/mod_muc/mod_muc_room.erl17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl
index 592844dcd..f07b876ea 100644
--- a/src/mod_muc/mod_muc_room.erl
+++ b/src/mod_muc/mod_muc_room.erl
@@ -475,9 +475,9 @@ normal_state({route, From, ToNick,
forget_message ->
{next_state, normal_state, StateData};
continue_delivery ->
- case (StateData#state.config)#config.allow_private_messages
- andalso is_user_online(From, StateData) of
- true ->
+ case {(StateData#state.config)#config.allow_private_messages,
+ is_user_online(From, StateData)} of
+ {true, true} ->
case Type of
"groupchat" ->
ErrText = "It is not allowed to send private "
@@ -511,7 +511,7 @@ normal_state({route, From, ToNick,
ToJID, Packet)
end
end;
- _ ->
+ {true, false} ->
ErrText = "Only occupants are allowed to send messages to the conference",
Err = jlib:make_error_reply(
Packet, ?ERRT_NOT_ACCEPTABLE(Lang, ErrText)),
@@ -519,6 +519,15 @@ normal_state({route, From, ToNick,
jlib:jid_replace_resource(
StateData#state.jid,
ToNick),
+ From, Err);
+ {false, _} ->
+ ErrText = "It is not allowed to send private messages",
+ Err = jlib:make_error_reply(
+ Packet, ?ERRT_FORBIDDEN(Lang, ErrText)),
+ ejabberd_router:route(
+ jlib:jid_replace_resource(
+ StateData#state.jid,
+ ToNick),
From, Err)
end,
{next_state, normal_state, StateData}