settings: Add nobody option for invite_to_realm_policy in frontend.

This commit is contained in:
sahil839
2021-07-18 21:48:28 +05:30
committed by Tim Abbott
parent 8ced74192a
commit ca0bb5b9d8
5 changed files with 46 additions and 1 deletions

View File

@@ -259,3 +259,11 @@ run_test("using_dark_theme", () => {
page_params.color_scheme = settings_config.color_scheme_values.day.code;
assert.equal(settings_data.using_dark_theme(), false);
});
run_test("user_can_invite_others_to_realm_nobody_case", () => {
page_params.is_admin = true;
page_params.is_guest = false;
page_params.realm_invite_to_realm_policy =
settings_config.invite_to_realm_policy_values.nobody.code;
assert.equal(settings_data.user_can_invite_others_to_realm(), false);
});

View File

@@ -130,6 +130,34 @@ export const common_policy_values = {
},
};
export const invite_to_realm_policy_values = {
nobody: {
order: 1,
code: 6,
description: $t({defaultMessage: "Nobody"}),
},
by_admins_only: {
order: 2,
code: 2,
description: $t({defaultMessage: "Admins"}),
},
by_moderators_only: {
order: 3,
code: 4,
description: $t({defaultMessage: "Admins and moderators"}),
},
by_full_members: {
order: 4,
code: 3,
description: $t({defaultMessage: "Admins and full members"}),
},
by_members: {
order: 5,
code: 1,
description: $t({defaultMessage: "Admins and members"}),
},
};
export const private_message_policy_values = {
by_anyone: {
order: 1,

View File

@@ -137,6 +137,12 @@ function user_has_permission(policy_value) {
}
export function user_can_invite_others_to_realm() {
if (
page_params.realm_invite_to_realm_policy ===
settings_config.invite_to_realm_policy_values.nobody.code
) {
return false;
}
return user_has_permission(page_params.realm_invite_to_realm_policy);
}

View File

@@ -104,6 +104,9 @@ export function get_organization_settings_options() {
options.common_message_policy_values = get_sorted_options_list(
settings_config.common_message_policy_values,
);
options.invite_to_realm_policy_values = get_sorted_options_list(
settings_config.invite_to_realm_policy_values,
);
return options;
}

View File

@@ -10,7 +10,7 @@
<div class="input-group">
<label for="realm_invite_to_realm_policy" class="dropdown-title">{{t "Who can invite users to this organization" }}</label>
<select name="realm_invite_to_realm_policy" id="id_realm_invite_to_realm_policy" class="prop-element" data-setting-widget-type="number">
{{> dropdown_options_widget option_values=common_policy_values}}
{{> dropdown_options_widget option_values=invite_to_realm_policy_values}}
</select>
{{> settings_checkbox
setting_name="realm_invite_required"