diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-01-19 11:12:27 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-01-19 11:12:27 +0300 |
commit | 527472f18c638b3f2245d95957a15329a464d018 (patch) | |
tree | a6d55b514650539ebe100261b6545be1ecf5604e /src/mod_muc_room.erl | |
parent | Fix typo (diff) |
Support legacy muc#roomconfig values (#1469)
Diffstat (limited to 'src/mod_muc_room.erl')
-rw-r--r-- | src/mod_muc_room.erl | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index ceb834d3..3bdd8f8c 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -2994,6 +2994,28 @@ get_actor_nick(MJID, StateData) -> _ -> <<"">> end. +convert_legacy_fields(Fs) -> + lists:map( + fun(#xdata_field{var = Var} = F) -> + NewVar = case Var of + <<"muc#roomconfig_allowvisitorstatus">> -> + <<"allow_visitor_status">>; + <<"muc#roomconfig_allowvisitornickchange">> -> + <<"allow_visitor_nickchange">>; + <<"muc#roomconfig_allowvoicerequests">> -> + <<"allow_voice_requests">>; + <<"muc#roomconfig_allow_subscription">> -> + <<"allow_subscription">>; + <<"muc#roomconfig_voicerequestmininterval">> -> + <<"voice_request_min_interval">>; + <<"muc#roomconfig_captcha_whitelist">> -> + <<"captcha_whitelist">>; + _ -> + Var + end, + F#xdata_field{var = NewVar} + end, Fs). + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Owner stuff -spec process_iq_owner(jid(), iq(), state()) -> @@ -3019,7 +3041,8 @@ process_iq_owner(From, #iq{type = set, lang = Lang, #xdata{type = cancel} -> {result, undefined}; #xdata{type = submit, fields = Fs} -> - try muc_roomconfig:decode(Fs) of + Fs1 = convert_legacy_fields(Fs), + try muc_roomconfig:decode(Fs1) of Options -> case is_allowed_log_change(Options, StateData, From) andalso is_allowed_persistent_change(Options, StateData, From) andalso |