]> 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 a121f9560d10d463fe0d6da5af0183c9afe6555d..b798bd63b6b06b7c783abdee2bc4ccd0aafc773a 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-04-30  Christophe Romain <christophe.romain@process-one.net>
 
index 29807ff091820ecb7ae99e08d0445378f14d71c0..9e6e13918cd65887f844554750064f39be3685b7 100644 (file)
@@ -478,9 +478,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 "
@@ -514,10 +514,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,