]> granicus.if.org Git - ejabberd/commitdiff
* src/mod_muc/mod_muc_room.erl: Log room creation and
authorBadlop <badlop@process-one.net>
Sun, 23 Dec 2007 12:28:44 +0000 (12:28 +0000)
committerBadlop <badlop@process-one.net>
Sun, 23 Dec 2007 12:28:44 +0000 (12:28 +0000)
destruction. Ensure JID of owners of MUC room are user, not
server (EJAB-435)

SVN Revision: 1104

ChangeLog
src/mod_muc/mod_muc_room.erl

index b21e9b70ffdee966bb3d73313bb63a95e73756cc..d2d970c826f6903b0d242652cc3c675c0ab670cd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-23  Badlop  <badlop@process-one.net>
+
+       * src/mod_muc/mod_muc_room.erl: Log room creation and
+       destruction. Ensure JID of owners of MUC room are user, not
+       server (EJAB-435)
+
 2007-12-22  Badlop  <badlop@process-one.net>
 
        * src/ejabberd.app: Update ejabberd.app: add new erlang
index 282b212eea56ddaec2fd09a52c340cc1d1e16956..ae4c2b912bc18d47adfa9e1f6959f20619b3f99b 100644 (file)
@@ -159,6 +159,8 @@ init([Host, ServerHost, Access, Room, HistorySize, RoomShaper, Creator, _Nick, D
                                   just_created = true,
                                   room_shaper = Shaper}),
     State1 = set_opts(DefRoomOpts, State),
+    ?INFO_MSG("Created MUC room ~s@~s by ~s", 
+             [Room, Host, jlib:jid_to_string(Creator)]),
     {ok, normal_state, State1};
 init([Host, ServerHost, Access, Room, HistorySize, RoomShaper, Opts]) ->
     Shaper = shaper:new(RoomShaper),
@@ -1930,13 +1932,18 @@ process_admin_items_set(UJID, Items, Lang, StateData) ->
     URole = get_role(UJID, StateData),
     case find_changed_items(UJID, UAffiliation, URole, Items, Lang, StateData, []) of
        {result, Res} ->
-           ?INFO_MSG("Processing MUC admin query from ~s:~n ~p~n",
-                     [jlib:jid_to_string(UJID), Res]),
+           ?INFO_MSG("Processing MUC admin query from ~s in room ~s:~n ~p",
+                     [jlib:jid_to_string(UJID), jlib:jid_to_string(StateData#state.jid), Res]),
            NSD =
                lists:foldl(
                  fun(E, SD) ->
                          case catch (
                                 case E of
+                                    {JID, affiliation, owner, _} 
+                                    when (JID#jid.luser == "") ->
+                                        %% If the provided JID does not have username,
+                                        %% forget the affiliation completely
+                                        SD;
                                     {JID, role, none, Reason} ->
                                         catch send_kickban_presence(
                                                 JID, Reason, "307", SD),
@@ -2388,6 +2395,8 @@ process_iq_owner(From, set, Lang, SubEl, StateData) ->
                            {error, ?ERR_BAD_REQUEST}
                    end;
                [{xmlelement, "destroy", _Attrs1, _Els1} = SubEl1] ->
+                   ?INFO_MSG("Destroyed MUC room ~s by ~s", 
+                             [jlib:jid_to_string(StateData#state.jid), jlib:jid_to_string(From)]),
                    destroy_room(SubEl1, StateData);
                Items ->
                    process_admin_items_set(From, Items, Lang, StateData)