]> granicus.if.org Git - ejabberd/commitdiff
* src/mod_muc/mod_muc_room.erl: Return Forbidden error message
authorBadlop <badlop@process-one.net>
Mon, 12 May 2008 20:35:43 +0000 (20:35 +0000)
committerBadlop <badlop@process-one.net>
Mon, 12 May 2008 20:35:43 +0000 (20:35 +0000)
when user sends private message in a room that disallows
it (EJAB-595)

SVN Revision: 1323

ChangeLog
src/mod_muc/mod_muc_room.erl

index 6a163c51d8de6566f6902a17e1dcb3d8d5b53560..cc562289fc9d66f47895d3e6fef0a66380df1a4a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,11 @@
 2008-05-12  Badlop  <badlop@process-one.net>
 
+       * src/mod_muc/mod_muc_room.erl: Return Forbidden error message
+       when user sends private message in a room that disallows
+       it (EJAB-595)
+
        * src/web/ejabberd_http.erl (parse_auth): Allow password that
-       include colon character (EJAB-522)
+       include colon character (EJAB-622)
 
 2008-05-09  Mickael Remond <mremond@process-one.net>
 
index 592844dcd8ece1d4a90a26878fc71dceae205391..f07b876ea4e88ce1d1a0b91975e38f40ab29425f 100644 (file)
@@ -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,10 +511,19 @@ 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)),
+                   ejabberd_router:route(
+                     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,