From 490aa2c6a659f86e5138905fa8b5042893d0f9b9 Mon Sep 17 00:00:00 2001 From: genric Date: Mon, 4 Apr 2016 14:02:34 +0200 Subject: [PATCH 1/2] Fix mod_muc_admin:set_room_affiliation Add missing options so they are stored when set_room_affiliation is invoked, instead of being ignored and set to default values after muc restart. --- src/mod_muc_admin.erl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 7c6e84c45..70426010e 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -881,12 +881,19 @@ make_opts(StateData) -> Config = StateData#state.config, [ {title, Config#config.title}, + {vcard, Config#config.vcard}, + {voice_request_min_interval, Config#config.voice_request_min_interval}, {allow_change_subj, Config#config.allow_change_subj}, {allow_query_users, Config#config.allow_query_users}, {allow_private_messages, Config#config.allow_private_messages}, + {allow_private_messages_from_visitors, Config#config.allow_private_messages_from_visitors}, + {allow_visitor_status, Config#config.allow_visitor_status}, + {allow_visitor_nickchange, Config#config.allow_visitor_nickchange}, + {allow_voice_requests, Config#config.allow_voice_requests}, {public, Config#config.public}, {public_list, Config#config.public_list}, {persistent, Config#config.persistent}, + {mam, Config#config.mam}, {moderated, Config#config.moderated}, {members_by_default, Config#config.members_by_default}, {members_only, Config#config.members_only}, @@ -894,6 +901,8 @@ make_opts(StateData) -> {password_protected, Config#config.password_protected}, {password, Config#config.password}, {anonymous, Config#config.anonymous}, + {captcha_protected, Config#config.captcha_protected}, + {description, Config#config.description}, {logging, Config#config.logging}, {max_users, Config#config.max_users}, {affiliations, ?DICT:to_list(StateData#state.affiliations)}, From be7f65da053cae8c641ecfa7349fec8e46c750b9 Mon Sep 17 00:00:00 2001 From: genric Date: Tue, 5 Apr 2016 14:13:28 +0200 Subject: [PATCH 2/2] Fix mod_muc_admin:get_room_options Fix mod_muc_admin:get_room_options to match the ejabberd_commands result spec. --- src/mod_muc_admin.erl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 7c6e84c45..037f26006 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -824,8 +824,12 @@ get_room_options(Pid) -> get_options(Config). get_options(Config) -> - Fields = record_info(fields, config), - [config | Values] = tuple_to_list(Config), + Fields = [jlib:atom_to_binary(Field) || Field <- record_info(fields, config)], + [config | ValuesRaw] = tuple_to_list(Config), + Values = lists:map(fun(V) when is_atom(V) -> jlib:atom_to_binary(V); + (V) when is_integer(V) -> jlib:integer_to_binary(V); + (V) when is_tuple(V); is_list(V) -> list_to_binary(hd(io_lib:format("~w", [V]))); + (V) -> V end, ValuesRaw), lists:zip(Fields, Values). %%----------------------------