diff --git a/frontend_tests/node_tests/dispatch.js b/frontend_tests/node_tests/dispatch.js index 7bfdd15ba5..219288a0e2 100644 --- a/frontend_tests/node_tests/dispatch.js +++ b/frontend_tests/node_tests/dispatch.js @@ -182,6 +182,13 @@ var event_fixtures = { value: false, }, + realm__update__create_generic_bot_by_admins_only: { + type: 'realm', + op: 'update', + property: 'create_generic_bot_by_admins_only', + value: false, + }, + realm__update_dict__default: { type: 'realm', op: 'update_dict', @@ -545,6 +552,9 @@ with_overrides(function (override) { event = event_fixtures.realm__update__restricted_to_domain; test_realm_boolean(event, 'realm_restricted_to_domain'); + event = event_fixtures.realm__update__create_stream_by_admins_only; + test_realm_boolean(event, 'realm_create_stream_by_admins_only'); + event = event_fixtures.realm__update_dict__default; page_params.realm_allow_message_editing = false; page_params.realm_message_content_edit_limit_seconds = 0; diff --git a/static/js/admin.js b/static/js/admin.js index 9bd97ef1a7..666826c8ce 100644 --- a/static/js/admin.js +++ b/static/js/admin.js @@ -41,6 +41,8 @@ function _setup_page() { realm_email_changes_disabled: page_params.realm_email_changes_disabled, realm_add_emoji_by_admins_only: page_params.realm_add_emoji_by_admins_only, can_admin_emojis: page_params.is_admin || !page_params.realm_add_emoji_by_admins_only, + realm_create_generic_bot_by_admins_only: + page_params.realm_create_generic_bot_by_admins_only, realm_allow_message_deleting: page_params.realm_allow_message_deleting, realm_allow_message_editing: page_params.realm_allow_message_editing, realm_message_content_edit_limit_minutes: diff --git a/static/js/server_events_dispatch.js b/static/js/server_events_dispatch.js index a5093ff9e2..779a82b01b 100644 --- a/static/js/server_events_dispatch.js +++ b/static/js/server_events_dispatch.js @@ -56,6 +56,7 @@ exports.dispatch_normal_event = function dispatch_normal_event(event) { allow_edit_history: noop, allow_message_deleting: noop, allow_message_editing: noop, + create_generic_bot_by_admins_only: noop, create_stream_by_admins_only: noop, default_language: settings_org.reset_realm_default_language, description: settings_org.update_realm_description, diff --git a/static/js/settings_org.js b/static/js/settings_org.js index 04e154beef..d8d47335de 100644 --- a/static/js/settings_org.js +++ b/static/js/settings_org.js @@ -316,6 +316,11 @@ function _set_up() { type: 'integer', msg: i18n.t("Waiting period threshold changed!"), }, + create_generic_bot_by_admins_only: { + type: 'bool', + checked_msg: i18n.t("Only administrators may now create new generic bots!"), + unchecked_msg: i18n.t("Any user may now create new generic bots!"), + }, }, }; diff --git a/static/templates/settings/organization-permissions-admin.handlebars b/static/templates/settings/organization-permissions-admin.handlebars index c18727b54d..742970611a 100644 --- a/static/templates/settings/organization-permissions-admin.handlebars +++ b/static/templates/settings/organization-permissions-admin.handlebars @@ -10,6 +10,7 @@
+
@@ -115,6 +116,21 @@
+

{{t "Interactive bots" }}

+
+
+ + +
+
+ {{#if is_admin }}