diff options
author | Maxim Ignatenko <gelraen.ua@gmail.com> | 2011-09-21 07:38:32 +0300 |
---|---|---|
committer | Maxim Ignatenko <gelraen.ua@gmail.com> | 2011-09-26 11:16:29 +0300 |
commit | 0c261fb9038c4ba0abcaac0f73bf804205f81ba0 (patch) | |
tree | de99fe19e13ad06883672bf2b2fde469526fcbc4 | |
parent | Fix typo (diff) |
Fix voice request/approvement detection and extract_jid_from_voice_approvement/1
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index 34e0e1f40..1d3601468 100644 --- a/src/mod_muc/mod_muc_room.erl +++ b/src/mod_muc/mod_muc_room.erl @@ -257,8 +257,8 @@ normal_state({route, From, "", {next_state, normal_state, StateData}; Type when (Type == "") or (Type == "normal") -> IsInvitation = is_invitation(Els), - IsVoiceRequest = is_voice_request(Els), - IsVoiceApprovement = is_voice_approvement(Els), + IsVoiceRequest = is_voice_request(Els) and is_visitor(From, StateData), + IsVoiceApprovement = is_voice_approvement(Els) and not is_visitor(From, StateData), if IsInvitation -> case catch check_invitation(From, Els, Lang, StateData) of @@ -298,9 +298,8 @@ normal_state({route, From, "", end end; IsVoiceRequest -> - NewStateData = case {is_visitor(From, StateData), - (StateData#state.config)#config.allow_voice_requests} of - {true, true} -> + NewStateData = case (StateData#state.config)#config.allow_voice_requests of + true -> MinInterval = (StateData#state.config)#config.voice_request_min_interval, BareFrom = jlib:jid_remove_resource(jlib:jid_tolower(From)), LastTime = last_voice_request_time(BareFrom, StateData), @@ -317,19 +316,12 @@ normal_state({route, From, "", StateData#state.jid, From, Err), StateData end; - {_, false} -> + false -> ErrText = "Voice requests are disabled in this room", Err = jlib:make_error_reply( Packet, ?ERRT_FORBIDDEN(Lang, ErrText)), ejabberd_router:route( StateData#state.jid, From, Err), - StateData; - _ -> - ErrText = "Only visitors allowed to request voice", - Err = jlib:make_error_reply( - Packet, ?ERRT_NOT_ALLOWED(Lang, ErrText)), - ejabberd_router:route( - StateData#state.jid, From, Err), StateData end, {next_state, normal_state, NewStateData}; @@ -3839,7 +3831,7 @@ extract_jid_from_voice_approvement(Els) -> case Acc2 of {error, _} -> case T of - {"muc#jid", Jid} -> + {"muc#jid", [Jid]} -> Jid; _ -> Acc2 |