set_role(JID, none, SD1);
_ ->
SD1 = set_affiliation(JID, none, SD),
- send_update_presence(JID, Reason, SD1, SD),
- maybe_send_affiliation(JID, none, SD1),
- SD1
+ SD2 = case (SD1#state.config)#config.moderated of
+ true -> set_role(JID, visitor, SD1);
+ false -> set_role(JID, participant, SD1)
+ end,
+ send_update_presence(JID, Reason, SD2, SD),
+ maybe_send_affiliation(JID, none, SD2),
+ SD2
end;
{JID, affiliation, outcast, Reason} ->
send_kickban_presence(UJID, JID, Reason, 301, outcast, SD),
#muc_item{affiliation = Aff} ->
ok
end
- end, [{member, participant, available}, {none, participant, available},
+ end, [{member, participant, available}, {none, visitor, available},
{admin, moderator, available}, {owner, moderator, available},
{outcast, none, unavailable}]),
ok = leave(Config),