settings: Add full members and moderators options in custom emoji setting.

This commit is contained in:
sahil839
2021-05-17 23:02:35 +05:30
committed by Tim Abbott
parent 1ce09d9db6
commit b8854a9d92
9 changed files with 21 additions and 47 deletions

View File

@@ -192,6 +192,11 @@ test_policy(
"realm_user_group_edit_policy", "realm_user_group_edit_policy",
settings_data.user_can_edit_user_groups, settings_data.user_can_edit_user_groups,
); );
test_policy(
"user_can_add_custom_emoji",
"realm_add_custom_emoji_policy",
settings_data.user_can_add_custom_emoji,
);
function test_message_policy(label, policy, validation_func) { function test_message_policy(label, policy, validation_func) {
run_test(label, () => { run_test(label, () => {

View File

@@ -165,8 +165,7 @@ function test_submit_settings_form(override, submit_form) {
realm_bot_creation_policy: settings_bots.bot_creation_policy_values.restricted.code, realm_bot_creation_policy: settings_bots.bot_creation_policy_values.restricted.code,
realm_email_address_visibility: realm_email_address_visibility:
settings_config.email_address_visibility_values.admins_only.code, settings_config.email_address_visibility_values.admins_only.code,
realm_add_custom_emoji_policy: realm_add_custom_emoji_policy: settings_config.common_policy_values.by_admins_only.code,
settings_config.add_custom_emoji_policy_values.by_admins_only.code,
realm_create_stream_by_admins_only: true, realm_create_stream_by_admins_only: true,
realm_waiting_period_threshold: 1, realm_waiting_period_threshold: 1,
realm_default_language: '"es"', realm_default_language: '"es"',

View File

@@ -10,7 +10,6 @@ import * as settings from "./settings";
import * as settings_bots from "./settings_bots"; import * as settings_bots from "./settings_bots";
import * as settings_config from "./settings_config"; import * as settings_config from "./settings_config";
import * as settings_data from "./settings_data"; import * as settings_data from "./settings_data";
import * as settings_emoji from "./settings_emoji";
import * as settings_org from "./settings_org"; import * as settings_org from "./settings_org";
import * as settings_panel_menu from "./settings_panel_menu"; import * as settings_panel_menu from "./settings_panel_menu";
import * as settings_sections from "./settings_sections"; import * as settings_sections from "./settings_sections";
@@ -77,9 +76,7 @@ export function build_page() {
realm_email_changes_disabled: page_params.realm_email_changes_disabled, realm_email_changes_disabled: page_params.realm_email_changes_disabled,
realm_avatar_changes_disabled: page_params.realm_avatar_changes_disabled, realm_avatar_changes_disabled: page_params.realm_avatar_changes_disabled,
realm_add_custom_emoji_policy: page_params.realm_add_custom_emoji_policy, realm_add_custom_emoji_policy: page_params.realm_add_custom_emoji_policy,
can_add_emojis: settings_emoji.can_add_emoji(), can_add_emojis: settings_data.user_can_add_custom_emoji(),
ADD_CUSTOM_EMOJI_POLICY_ADMINS_ONLY:
settings_config.add_custom_emoji_policy_values.by_admins_only.code,
realm_message_content_edit_limit_minutes: settings_org.get_realm_time_limits_in_minutes( realm_message_content_edit_limit_minutes: settings_org.get_realm_time_limits_in_minutes(
"realm_message_content_edit_limit_seconds", "realm_message_content_edit_limit_seconds",
), ),

View File

@@ -158,19 +158,6 @@ export const invite_to_realm_policy_values = {
}, },
}; };
export const add_custom_emoji_policy_values = {
by_admins_only: {
order: 1,
code: 2,
description: $t({defaultMessage: "Admins"}),
},
by_members: {
order: 2,
code: 1,
description: $t({defaultMessage: "Admins and members"}),
},
};
export const private_message_policy_values = { export const private_message_policy_values = {
by_anyone: { by_anyone: {
order: 1, order: 1,

View File

@@ -166,6 +166,10 @@ export function user_can_edit_user_groups() {
return user_has_permission(page_params.realm_user_group_edit_policy); return user_has_permission(page_params.realm_user_group_edit_policy);
} }
export function user_can_add_custom_emoji() {
return user_has_permission(page_params.realm_add_custom_emoji_policy);
}
export function user_can_edit_topic_of_any_message() { export function user_can_edit_topic_of_any_message() {
if ( if (
page_params.realm_edit_topic_policy === page_params.realm_edit_topic_policy ===

View File

@@ -14,6 +14,7 @@ import * as loading from "./loading";
import {page_params} from "./page_params"; import {page_params} from "./page_params";
import * as people from "./people"; import * as people from "./people";
import * as settings_config from "./settings_config"; import * as settings_config from "./settings_config";
import * as settings_data from "./settings_data";
import * as ui from "./ui"; import * as ui from "./ui";
import * as ui_report from "./ui_report"; import * as ui_report from "./ui_report";
import * as upload_widget from "./upload_widget"; import * as upload_widget from "./upload_widget";
@@ -22,22 +23,6 @@ const meta = {
loaded: false, loaded: false,
}; };
export function can_add_emoji() {
if (page_params.is_guest) {
return false;
}
if (page_params.is_admin) {
return true;
}
// for normal users, we depend on the setting
return (
page_params.realm_add_custom_emoji_policy ===
settings_config.add_custom_emoji_policy_values.by_members.code
);
}
function can_delete_emoji(emoji) { function can_delete_emoji(emoji) {
if (page_params.is_admin) { if (page_params.is_admin) {
return true; return true;
@@ -54,15 +39,11 @@ function can_delete_emoji(emoji) {
export function update_custom_emoji_ui() { export function update_custom_emoji_ui() {
const rendered_tip = render_settings_emoji_settings_tip({ const rendered_tip = render_settings_emoji_settings_tip({
ADD_CUSTOM_EMOJI_POLICY_ADMINS_ONLY: realm_add_custom_emoji_policy: page_params.realm_add_custom_emoji_policy,
settings_config.add_custom_emoji_policy_values.by_admins_only.code, policy_values: settings_config.common_policy_values,
}); });
$("#emoji-settings").find(".emoji-settings-tip-container").html(rendered_tip); $("#emoji-settings").find(".emoji-settings-tip-container").html(rendered_tip);
if ( if (!settings_data.user_can_add_custom_emoji()) {
page_params.realm_add_custom_emoji_policy ===
settings_config.add_custom_emoji_policy_values.by_admins_only.code &&
!page_params.is_admin
) {
$(".add-emoji-text").hide(); $(".add-emoji-text").hide();
$(".admin-emoji-form").hide(); $(".admin-emoji-form").hide();
} else { } else {

View File

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

View File

@@ -1,8 +1,12 @@
{{#if is_guest}} {{#if is_guest}}
<div class='tip'>{{t "Guests cannot edit custom emoji." }}</div> <div class='tip'>{{t "Guests cannot edit custom emoji." }}</div>
{{else}} {{else}}
{{#if (eq realm_add_custom_emoji_policy ADD_CUSTOM_EMOJI_POLICY_ADMINS_ONLY) }} {{#if (eq realm_add_custom_emoji_policy policy_values.by_admins_only.code) }}
<div class='tip'>{{t "Only organization administrators can add custom emoji in this organization." }}</div> <div class='tip'>{{t "Only organization administrators can add custom emoji in this organization." }}</div>
{{else if (eq realm_add_custom_emoji_policy policy_values.by_moderators_only.code)}}
<div class='tip'>{{t 'Only organization administrators and moderators can add custom emoji in this organization.'}}</div>
{{else if (eq realm_add_custom_emoji_policy policy_values.by_full_members.code)}}
<div class='tip'>{{t 'Only organization full members can add custom emoji in this organization.'}}</div>
{{else}} {{else}}
<div class='tip'>{{t "Any member of this organization can add custom emoji." }}</div> <div class='tip'>{{t "Any member of this organization can add custom emoji." }}</div>
{{/if}} {{/if}}

View File

@@ -214,7 +214,7 @@
<div class="input-group"> <div class="input-group">
<label for="realm_add_custom_emoji_policy" class="dropdown-title">{{t "Who can add custom emoji" }}</label> <label for="realm_add_custom_emoji_policy" class="dropdown-title">{{t "Who can add custom emoji" }}</label>
<select name="realm_add_cutsom_emoji_policy" class="setting-widget prop-element" id="id_realm_add_custom_emoji_policy" data-setting-widget-type="number"> <select name="realm_add_cutsom_emoji_policy" class="setting-widget prop-element" id="id_realm_add_custom_emoji_policy" data-setting-widget-type="number">
{{> dropdown_options_widget option_values=add_custom_emoji_policy_values}} {{> dropdown_options_widget option_values=common_policy_values}}
</select> </select>
</div> </div>