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 @@
+
+ {{t "Interactive bots" }}
+
+
+
+
+
+
+
{{#if is_admin }}