mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-20 16:15:59 +01:00
Fix mod_muc_admin:set_room_affiliation
This commit is contained in:
parent
a095477b4c
commit
976a8c9cc9
@ -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 ->
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user