diff options
author | Badlop <badlop@process-one.net> | 2008-05-12 20:35:43 +0000 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2008-05-12 20:35:43 +0000 |
commit | da56452fbadf1f1ac960680188098fd2dbf2bd76 (patch) | |
tree | 863149c767e05b0e96d7399dc6017d1ef5049eb4 /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.erl | 17 |
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} |