From 3adf720bc1df7f9e2a6d8372438d56bd0bbfd6b6 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 19 Apr 2017 22:18:23 +0200 Subject: Use #jid{} type for #muc_unsubscribe.jid --- src/mod_muc_room.erl | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/mod_muc_room.erl') diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index 6869de6d..f9382896 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -3742,20 +3742,18 @@ process_iq_mucsub(From, add_new_user(From, Nick, Packet, SD2) end; process_iq_mucsub(From, #iq{type = set, lang = Lang, - sub_els = [#muc_unsubscribe{jid = UnsubJid}]}, - StateData) when UnsubJid /= <<>> -> + sub_els = [#muc_unsubscribe{jid = #jid{} = UnsubJid}]}, + StateData) -> FAffiliation = get_affiliation(From, StateData), FRole = get_role(From, StateData), - try jid:decode(UnsubJid) of - FromUnsub when FRole == moderator; FAffiliation == owner; FAffiliation == admin -> - process_iq_mucsub(FromUnsub, #iq{type = set, sub_els = [#muc_unsubscribe{jid = <<>>}]}, - StateData); - _ -> + if FRole == moderator; FAffiliation == owner; FAffiliation == admin -> + process_iq_mucsub(UnsubJid, + #iq{type = set, + sub_els = [#muc_unsubscribe{jid = undefined}]}, + StateData); + true -> Txt = <<"Moderator privileges required">>, {error, xmpp:err_forbidden(Txt, Lang)} - catch - error:{bad_jid,_} -> - {error, xmpp:err_jid_malformed()} end; process_iq_mucsub(From, #iq{type = set, sub_els = [#muc_unsubscribe{}]}, StateData) -> -- cgit v1.2.3