From: Evgeniy Khramtsov <ekhramtsov@process-one.net> Date: Tue, 1 Dec 2015 11:05:54 +0000 (+0300) Subject: Fix archive preference retreiving (#848) X-Git-Tag: 16.01~96 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f1ecbf80fb30879669d80037941d500e434c13f2;p=ejabberd Fix archive preference retreiving (#848) --- diff --git a/src/mod_mam.erl b/src/mod_mam.erl index eb72ad8a6..87ff8e5e1 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -310,6 +310,24 @@ process_iq(#jid{luser = LUser, lserver = LServer}, catch _:_ -> IQ#iq{type = error, sub_el = [SubEl, ?ERR_BAD_REQUEST]} end; +process_iq(#jid{luser = LUser, lserver = LServer}, + #jid{lserver = LServer}, + #iq{type = get, sub_el = #xmlel{name = <<"prefs">>}} = IQ) -> + Prefs = get_prefs(LUser, LServer), + Default = jlib:atom_to_binary(Prefs#archive_prefs.default), + JFun = fun(L) -> + [#xmlel{name = <<"jid">>, + children = [{xmlcdata, jid:to_string(J)}]} + || J <- L] + end, + Always = #xmlel{name = <<"always">>, + children = JFun(Prefs#archive_prefs.always)}, + Never = #xmlel{name = <<"never">>, + children = JFun(Prefs#archive_prefs.never)}, + IQ#iq{type = result, + sub_el = [#xmlel{name = <<"prefs">>, + attrs = [{<<"default">>, Default}], + children = [Always, Never]}]}; process_iq(_, _, #iq{sub_el = SubEl} = IQ) -> IQ#iq{type = error, sub_el = [SubEl, ?ERR_NOT_ALLOWED]}.