From b8854a9d92111bc368e2aaf28261092d65727086 Mon Sep 17 00:00:00 2001 From: sahil839 Date: Mon, 17 May 2021 23:02:35 +0530 Subject: [PATCH] settings: Add full members and moderators options in custom emoji setting. --- frontend_tests/node_tests/settings_data.js | 5 ++++ frontend_tests/node_tests/settings_org.js | 3 +-- static/js/admin.js | 5 +--- static/js/settings_config.js | 13 --------- static/js/settings_data.js | 4 +++ static/js/settings_emoji.js | 27 +++---------------- static/js/settings_org.js | 3 --- .../templates/settings/emoji_settings_tip.hbs | 6 ++++- .../organization_permissions_admin.hbs | 2 +- 9 files changed, 21 insertions(+), 47 deletions(-) diff --git a/frontend_tests/node_tests/settings_data.js b/frontend_tests/node_tests/settings_data.js index 6bf4c2d1e5..91c074c274 100644 --- a/frontend_tests/node_tests/settings_data.js +++ b/frontend_tests/node_tests/settings_data.js @@ -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, () => { diff --git a/frontend_tests/node_tests/settings_org.js b/frontend_tests/node_tests/settings_org.js index b910e761e6..3c108b3881 100644 --- a/frontend_tests/node_tests/settings_org.js +++ b/frontend_tests/node_tests/settings_org.js @@ -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"', diff --git a/static/js/admin.js b/static/js/admin.js index d6a97c7206..216ca4e4eb 100644 --- a/static/js/admin.js +++ b/static/js/admin.js @@ -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", ), diff --git a/static/js/settings_config.js b/static/js/settings_config.js index f070bf4913..53a22c8489 100644 --- a/static/js/settings_config.js +++ b/static/js/settings_config.js @@ -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, diff --git a/static/js/settings_data.js b/static/js/settings_data.js index 6f28cc620e..5de77b4724 100644 --- a/static/js/settings_data.js +++ b/static/js/settings_data.js @@ -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 === diff --git a/static/js/settings_emoji.js b/static/js/settings_emoji.js index 1f6ed78dac..16ace12555 100644 --- a/static/js/settings_emoji.js +++ b/static/js/settings_emoji.js @@ -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 { diff --git a/static/js/settings_org.js b/static/js/settings_org.js index c1c4e48cb7..816e63256f 100644 --- a/static/js/settings_org.js +++ b/static/js/settings_org.js @@ -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; } diff --git a/static/templates/settings/emoji_settings_tip.hbs b/static/templates/settings/emoji_settings_tip.hbs index 9eebae9093..aade54d088 100644 --- a/static/templates/settings/emoji_settings_tip.hbs +++ b/static/templates/settings/emoji_settings_tip.hbs @@ -1,8 +1,12 @@ {{#if is_guest}}
{{t "Guests cannot edit custom emoji." }}
{{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) }}
{{t "Only organization administrators can add custom emoji in this organization." }}
+ {{else if (eq realm_add_custom_emoji_policy policy_values.by_moderators_only.code)}} +
{{t 'Only organization administrators and moderators can add custom emoji in this organization.'}}
+ {{else if (eq realm_add_custom_emoji_policy policy_values.by_full_members.code)}} +
{{t 'Only organization full members can add custom emoji in this organization.'}}
{{else}}
{{t "Any member of this organization can add custom emoji." }}
{{/if}} diff --git a/static/templates/settings/organization_permissions_admin.hbs b/static/templates/settings/organization_permissions_admin.hbs index 57194052d2..b60d1533b6 100644 --- a/static/templates/settings/organization_permissions_admin.hbs +++ b/static/templates/settings/organization_permissions_admin.hbs @@ -214,7 +214,7 @@