mirror of
https://github.com/zulip/zulip.git
synced 2025-11-16 20:02:15 +00:00
groups: Restrict creating groups to non limited plans.
This commit is contained in:
committed by
Tim Abbott
parent
6e0913d742
commit
cccf1eacb1
@@ -23,6 +23,7 @@ import * as overlays from "./overlays.ts";
|
||||
import * as people from "./people.ts";
|
||||
import * as scroll_util from "./scroll_util.ts";
|
||||
import * as settings_components from "./settings_components.ts";
|
||||
import * as settings_config from "./settings_config.ts";
|
||||
import * as settings_data from "./settings_data.ts";
|
||||
import * as settings_org from "./settings_org.ts";
|
||||
import {current_user, realm} from "./state_data.ts";
|
||||
@@ -837,6 +838,10 @@ export function setup_page(callback) {
|
||||
function populate_and_fill() {
|
||||
const template_data = {
|
||||
can_create_user_groups: settings_data.user_can_create_user_groups(),
|
||||
zulip_plan_is_not_limited: realm.zulip_plan_is_not_limited,
|
||||
upgrade_text_for_wide_organization_logo: realm.upgrade_text_for_wide_organization_logo,
|
||||
is_business_type_org:
|
||||
realm.realm_org_type === settings_config.all_org_type_values.business.code,
|
||||
max_user_group_name_length,
|
||||
};
|
||||
|
||||
|
||||
@@ -92,6 +92,12 @@
|
||||
position: relative;
|
||||
top: -5px;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
/* Replicate disabled values */
|
||||
cursor: not-allowed;
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
#create_user_group_description,
|
||||
@@ -365,8 +371,7 @@ h4.user_group_setting_subsection_title {
|
||||
|
||||
.left .no-streams-to-show,
|
||||
.left .no-groups-to-show,
|
||||
.right .nothing-selected .create-stream-button-container,
|
||||
.right .nothing-selected .create-group-button-container {
|
||||
.right .nothing-selected .create-stream-button-container {
|
||||
display: block;
|
||||
text-align: center;
|
||||
font-size: 1em;
|
||||
@@ -397,6 +402,18 @@ h4.user_group_setting_subsection_title {
|
||||
|
||||
.create-group-button-container {
|
||||
margin-top: calc(45vh - 134px);
|
||||
text-align: center;
|
||||
|
||||
.settings-empty-option-text {
|
||||
color: hsl(0deg 0% 67%);
|
||||
}
|
||||
|
||||
.upgrade-or-sponsorship-tip,
|
||||
.upgrade-tip {
|
||||
/* Center tip in parent container */
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="list-toggler-container">
|
||||
<div id="add_new_user_group">
|
||||
{{#if can_create_user_groups}}
|
||||
<button class="create_user_group_button create_user_group_plus_button">
|
||||
<button class="create_user_group_button create_user_group_plus_button" {{#if (not zulip_plan_is_not_limited)}}disabled{{/if}}>
|
||||
<span class="create_button_plus_sign">+</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
@@ -52,7 +52,8 @@
|
||||
<div class="nothing-selected">
|
||||
<div class="group-info-banner"></div>
|
||||
<div class="create-group-button-container">
|
||||
<button type="button" class="create_user_group_button animated-purple-button" {{#unless can_create_user_groups}}disabled{{/unless}}>{{t 'Create user group' }}</button>
|
||||
{{> ../settings/upgrade_tip_widget . }}
|
||||
<button type="button" class="create_user_group_button animated-purple-button" {{#unless (and can_create_user_groups zulip_plan_is_not_limited)}}disabled{{/unless}}>{{t 'Create user group' }}</button>
|
||||
{{#unless can_create_user_groups}}
|
||||
<span class="settings-empty-option-text">
|
||||
{{t 'You do not have permission to create user groups.' }}
|
||||
|
||||
@@ -10,6 +10,7 @@ from zerver.actions.create_realm import do_create_realm
|
||||
from zerver.actions.create_user import do_reactivate_user
|
||||
from zerver.actions.realm_settings import (
|
||||
do_change_realm_permission_group_setting,
|
||||
do_change_realm_plan_type,
|
||||
do_set_realm_property,
|
||||
)
|
||||
from zerver.actions.streams import (
|
||||
@@ -453,6 +454,14 @@ class UserGroupAPITestCase(UserGroupTestCase):
|
||||
self.assert_json_success(result)
|
||||
self.assert_length(NamedUserGroup.objects.filter(realm=hamlet.realm), 10)
|
||||
|
||||
# User groups should not be allowed to be created on limited plans.
|
||||
original_plan_type = hamlet.realm.plan_type
|
||||
do_change_realm_plan_type(hamlet.realm, Realm.PLAN_TYPE_LIMITED, acting_user=None)
|
||||
result = self.client_post("/json/user_groups/create", info=params)
|
||||
self.assert_json_error(result, "Available on Zulip Cloud Standard. Upgrade to access.")
|
||||
self.assert_length(NamedUserGroup.objects.filter(realm=hamlet.realm), 10)
|
||||
do_change_realm_plan_type(hamlet.realm, original_plan_type, acting_user=None)
|
||||
|
||||
# Check default value of settings.
|
||||
everyone_system_group = NamedUserGroup.objects.get(
|
||||
name="role:everyone", realm=hamlet.realm, is_system_group=True
|
||||
|
||||
@@ -64,6 +64,7 @@ def add_user_group(
|
||||
can_manage_group: Json[int | AnonymousSettingGroupDict] | None = None,
|
||||
can_mention_group: Json[int | AnonymousSettingGroupDict] | None = None,
|
||||
) -> HttpResponse:
|
||||
user_profile.realm.ensure_not_on_limited_plan()
|
||||
user_profiles = user_ids_to_users(members, user_profile.realm, allow_deactivated=False)
|
||||
name = check_user_group_name(name)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user