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",
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) {
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_email_address_visibility:
settings_config.email_address_visibility_values.admins_only.code,
realm_add_custom_emoji_policy:
settings_config.add_custom_emoji_policy_values.by_admins_only.code,
realm_add_custom_emoji_policy: settings_config.common_policy_values.by_admins_only.code,
realm_create_stream_by_admins_only: true,
realm_waiting_period_threshold: 1,
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_config from "./settings_config";
import * as settings_data from "./settings_data";
import * as settings_emoji from "./settings_emoji";
import * as settings_org from "./settings_org";
import * as settings_panel_menu from "./settings_panel_menu";
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_avatar_changes_disabled: page_params.realm_avatar_changes_disabled,
realm_add_custom_emoji_policy: page_params.realm_add_custom_emoji_policy,
can_add_emojis: settings_emoji.can_add_emoji(),
ADD_CUSTOM_EMOJI_POLICY_ADMINS_ONLY:
settings_config.add_custom_emoji_policy_values.by_admins_only.code,
can_add_emojis: settings_data.user_can_add_custom_emoji(),
realm_message_content_edit_limit_minutes: settings_org.get_realm_time_limits_in_minutes(
"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 = {
by_anyone: {
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);
}
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() {
if (
page_params.realm_edit_topic_policy ===

View File

@@ -14,6 +14,7 @@ import * as loading from "./loading";
import {page_params} from "./page_params";
import * as people from "./people";
import * as settings_config from "./settings_config";
import * as settings_data from "./settings_data";
import * as ui from "./ui";
import * as ui_report from "./ui_report";
import * as upload_widget from "./upload_widget";
@@ -22,22 +23,6 @@ const meta = {
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) {
if (page_params.is_admin) {
return true;
@@ -54,15 +39,11 @@ function can_delete_emoji(emoji) {
export function update_custom_emoji_ui() {
const rendered_tip = render_settings_emoji_settings_tip({
ADD_CUSTOM_EMOJI_POLICY_ADMINS_ONLY:
settings_config.add_custom_emoji_policy_values.by_admins_only.code,
realm_add_custom_emoji_policy: page_params.realm_add_custom_emoji_policy,
policy_values: settings_config.common_policy_values,
});
$("#emoji-settings").find(".emoji-settings-tip-container").html(rendered_tip);
if (
page_params.realm_add_custom_emoji_policy ===
settings_config.add_custom_emoji_policy_values.by_admins_only.code &&
!page_params.is_admin
) {
if (!settings_data.user_can_add_custom_emoji()) {
$(".add-emoji-text").hide();
$(".admin-emoji-form").hide();
} else {

View File

@@ -108,9 +108,6 @@ export function get_organization_settings_options() {
options.invite_to_realm_policy_values = get_sorted_options_list(
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;
}

View File

@@ -1,8 +1,12 @@
{{#if is_guest}}
<div class='tip'>{{t "Guests cannot edit custom emoji." }}</div>
{{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>
{{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}}
<div class='tip'>{{t "Any member of this organization can add custom emoji." }}</div>
{{/if}}

View File

@@ -214,7 +214,7 @@
<div class="input-group">
<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">
{{> dropdown_options_widget option_values=add_custom_emoji_policy_values}}
{{> dropdown_options_widget option_values=common_policy_values}}
</select>
</div>