]> granicus.if.org Git - ejabberd/commitdiff
Fix mod_muc_admin:set_room_affiliation
authorMarc Philipp <marc.philipp@logmein.com>
Wed, 21 Jun 2017 13:44:09 +0000 (15:44 +0200)
committerMarc Philipp <marc.philipp@logmein.com>
Wed, 21 Jun 2017 15:20:58 +0000 (17:20 +0200)
src/mod_muc_admin.erl
src/mod_muc_room.erl

index 6966d41804d12ada359ba84f1c956d6f9ff4998a..2d1e66ba514c29975e81ddbafab12c74e17ffd11 100644 (file)
@@ -1012,7 +1012,7 @@ set_room_affiliation(Name, Service, JID, AffiliationString) ->
     case mod_muc:find_online_room(Name, Service) of
        {ok, Pid} ->
            %% Get the PID for the online room so we can get the state of the room
-           {ok, StateData} = gen_fsm:sync_send_all_state_event(Pid, {process_item_change, {jid:decode(JID), affiliation, Affiliation, <<"">>}, <<"">>}),
+           {ok, StateData} = gen_fsm:sync_send_all_state_event(Pid, {process_item_change, {jid:decode(JID), affiliation, Affiliation, <<"">>}, undefined}),
            mod_muc:store_room(StateData#state.server_host, StateData#state.host, StateData#state.room, make_opts(StateData)),
            ok;
        error ->
index 149e6c2210cbc7f4fedb7ab917f04d29cac3deb4..ec1cffd6ac53c076579d49d7a331f169e5f895c3 100644 (file)
@@ -2608,7 +2608,7 @@ process_item_change(UJID) ->
 -type admin_action() :: {jid(), affiliation | role,
                         affiliation() | role(), binary()}.
 
--spec process_item_change(admin_action(), state(), jid()) -> state() | {error, stanza_error()}.
+-spec process_item_change(admin_action(), state(), undefined | jid()) -> state() | {error, stanza_error()}.
 process_item_change(Item, SD, UJID) ->
     try case Item of
            {JID, affiliation, owner, _} when JID#jid.luser == <<"">> ->
@@ -2658,8 +2658,15 @@ process_item_change(Item, SD, UJID) ->
                SD1
        end
     catch E:R ->
-           ?ERROR_MSG("failed to set item ~p from ~s: ~p",
-                      [Item, jid:encode(UJID),
+               FromSuffix = case UJID of
+                       #jid{} ->
+                               JidString = jid:encode(UJID),
+                               <<" from ", JidString/binary>>;
+                       undefined ->
+                               <<"">>
+               end,
+               ?ERROR_MSG("failed to set item ~p~s: ~p",
+                      [Item, FromSuffix,
                        {E, {R, erlang:get_stacktrace()}}]),
            {error, xmpp:err_internal_server_error()}
     end.