mirror of https://github.com/zulip/zulip.git
settings: Fix updating realm join restrictions setting.
This commit fixes the bug when updating
"Restrict email domains of new users?" setting by
adding data-setting-widget-type attribute to the select
element as get_input_element_value now expects every
element to have that attribute after 64c8262eaf
.
Due to this change, we also need to update the code in
populate_data_for_request function to not send invalid
parameter in the request. This change resulted in some
refactoring which now helps in not passing in the
"disallow_disposable_email_addresses" and
"email_restricted_to_domains" when these fields are
not changed.
This commit is contained in:
parent
ed8d7ed864
commit
39c6a01c74
|
@ -901,6 +901,32 @@ export function check_property_changed(
|
||||||
return current_val !== proposed_val;
|
return current_val !== proposed_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_request_data_for_org_join_restrictions(selected_val: string): {
|
||||||
|
disallow_disposable_email_addresses: boolean;
|
||||||
|
emails_restricted_to_domains: boolean;
|
||||||
|
} {
|
||||||
|
switch (selected_val) {
|
||||||
|
case "only_selected_domain": {
|
||||||
|
return {
|
||||||
|
emails_restricted_to_domains: true,
|
||||||
|
disallow_disposable_email_addresses: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
case "no_disposable_email": {
|
||||||
|
return {
|
||||||
|
emails_restricted_to_domains: false,
|
||||||
|
disallow_disposable_email_addresses: true,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
return {
|
||||||
|
disallow_disposable_email_addresses: false,
|
||||||
|
emails_restricted_to_domains: false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function populate_data_for_request(
|
export function populate_data_for_request(
|
||||||
$subsection_elem: JQuery,
|
$subsection_elem: JQuery,
|
||||||
for_realm_default_settings: boolean,
|
for_realm_default_settings: boolean,
|
||||||
|
@ -966,6 +992,14 @@ export function populate_data_for_request(
|
||||||
});
|
});
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (property_name === "org_join_restrictions") {
|
||||||
|
data = {
|
||||||
|
...data,
|
||||||
|
...get_request_data_for_org_join_restrictions(input_value.toString()),
|
||||||
|
};
|
||||||
|
continue;
|
||||||
|
}
|
||||||
data[property_name] = input_value;
|
data[property_name] = input_value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -880,24 +880,6 @@ export function register_save_discard_widget_handlers(
|
||||||
let data = {};
|
let data = {};
|
||||||
|
|
||||||
switch (subsection) {
|
switch (subsection) {
|
||||||
case "join_settings": {
|
|
||||||
const org_join_restrictions = $("#id_realm_org_join_restrictions").val();
|
|
||||||
switch (org_join_restrictions) {
|
|
||||||
case "only_selected_domain":
|
|
||||||
data.emails_restricted_to_domains = true;
|
|
||||||
data.disallow_disposable_email_addresses = false;
|
|
||||||
break;
|
|
||||||
case "no_disposable_email":
|
|
||||||
data.emails_restricted_to_domains = false;
|
|
||||||
data.disallow_disposable_email_addresses = true;
|
|
||||||
break;
|
|
||||||
case "no_restriction":
|
|
||||||
data.disallow_disposable_email_addresses = false;
|
|
||||||
data.emails_restricted_to_domains = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "auth_settings":
|
case "auth_settings":
|
||||||
data = {};
|
data = {};
|
||||||
data.authentication_methods = JSON.stringify(
|
data.authentication_methods = JSON.stringify(
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<label for="realm_org_join_restrictions" class="settings-field-label">{{t "Restrict email domains of new users?" }}</label>
|
<label for="realm_org_join_restrictions" class="settings-field-label">{{t "Restrict email domains of new users?" }}</label>
|
||||||
<select name="realm_org_join_restrictions" id="id_realm_org_join_restrictions" class="prop-element settings_select bootstrap-focus-style">
|
<select name="realm_org_join_restrictions" id="id_realm_org_join_restrictions" class="prop-element settings_select bootstrap-focus-style" data-setting-widget-type="string">
|
||||||
<option value="no_restriction">{{t "No restrictions" }}</option>
|
<option value="no_restriction">{{t "No restrictions" }}</option>
|
||||||
<option value="no_disposable_email">{{t "Don’t allow disposable email addresses" }}</option>
|
<option value="no_disposable_email">{{t "Don’t allow disposable email addresses" }}</option>
|
||||||
<option value="only_selected_domain">{{t "Restrict to a list of domains" }}</option>
|
<option value="only_selected_domain">{{t "Restrict to a list of domains" }}</option>
|
||||||
|
|
Loading…
Reference in New Issue