summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2010-11-15 13:47:31 +0900
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2010-11-15 13:47:31 +0900
commit0ccff15599056572dd5d683d02f798483afe325c (patch)
tree95df6f6a6e1392e0a730db323c39633598279760
parentFix typos in the example configuration file (diff)
Strip status when needed in presence-unavailable as well
Diffstat (limited to '')
-rw-r--r--src/mod_muc/mod_muc_room.erl11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl
index 0eeea91e..570df083 100644
--- a/src/mod_muc/mod_muc_room.erl
+++ b/src/mod_muc/mod_muc_room.erl
@@ -870,10 +870,17 @@ process_presence(From, Nick, {xmlelement, "presence", Attrs, _Els} = Packet,
"unavailable" ->
case is_user_online(From, StateData) of
true ->
+ NewPacket = case {(StateData#state.config)#config.allow_visitor_status,
+ is_visitor(From, StateData)} of
+ {false, true} ->
+ strip_status(Packet);
+ _ ->
+ Packet
+ end,
NewState =
- add_user_presence_un(From, Packet, StateData),
+ add_user_presence_un(From, NewPacket, StateData),
send_new_presence(From, NewState),
- Reason = case xml:get_subtag(Packet, "status") of
+ Reason = case xml:get_subtag(NewPacket, "status") of
false -> "";
Status_el -> xml:get_tag_cdata(Status_el)
end,