{
diff --git a/webapp/channels/src/i18n/en.json b/webapp/channels/src/i18n/en.json
index cc10a8b4600..13c3f63a6f0 100644
--- a/webapp/channels/src/i18n/en.json
+++ b/webapp/channels/src/i18n/en.json
@@ -445,14 +445,15 @@
"admin.billing.subscription.creditCardHasExpired": "Your credit card has expired",
"admin.billing.subscription.creditCardHasExpired.description": "Please update your payment information to avoid any disruption.",
"admin.billing.subscription.downgrading": "Downgrading your workspace",
- "admin.billing.subscription.freeTrial.description": "Your free trial will expire in {daysLeftOnTrial} days. Add your payment information to continue after the trial ends.",
- "admin.billing.subscription.freeTrial.lastDay.description": "Your free trial has ended. Add payment information to continue enjoying the benefits of Cloud Professional.",
+ "admin.billing.subscription.freeTrial.description": "Your free trial will expire in {daysLeftOnTrial} days. Contact Sales to continue after the trial ends.",
+ "admin.billing.subscription.freeTrial.lastDay.description": "Your free trial has ended. Contact Sales to continue enjoying the benefits of Cloud Professional.",
"admin.billing.subscription.freeTrial.lastDay.title": "Your free trial ends today",
- "admin.billing.subscription.freeTrial.lessThan3Days.description": "Your free trial will end in {daysLeftOnTrial, number} {daysLeftOnTrial, plural, one {day} other {days}}. Add payment information to continue enjoying the benefits of Cloud Professional.",
+ "admin.billing.subscription.freeTrial.lessThan3Days.description": "Your free trial will end in {daysLeftOnTrial, number} {daysLeftOnTrial, plural, one {day} other {days}}. Contact Sales to continue enjoying the benefits of Cloud Professional.",
"admin.billing.subscription.freeTrial.title": "You're currently on a free trial",
"admin.billing.subscription.invoice.next": "Next Invoice",
"admin.billing.subscription.mostRecentPaymentFailed": "Your most recent payment failed",
"admin.billing.subscription.planDetails.currentPlan": "Current Plan",
+ "admin.billing.subscription.planDetails.features.abac": "Attribute-based access control (ABAC)",
"admin.billing.subscription.planDetails.features.advanceTeamPermission": "Advanced team permissions",
"admin.billing.subscription.planDetails.features.autoComplianceExports": "Automated compliance exports",
"admin.billing.subscription.planDetails.features.customRetentionPolicies": "Custom data retention policies",
@@ -476,9 +477,7 @@
"admin.billing.subscription.planDetails.features.ssoSaml": "SSO w/ SAML (includes Okta and OneLogIn)",
"admin.billing.subscription.planDetails.features.unlimitedUsers": "Unlimited users",
"admin.billing.subscription.planDetails.features.unlimittedUsersAndMessagingHistory": "Unlimited users & message history",
- "admin.billing.subscription.planDetails.flatFeePerMonth": "/month (Unlimited Users). ",
- "admin.billing.subscription.planDetails.howBillingWorks": "See how billing works",
- "admin.billing.subscription.planDetails.perUserPerMonth": "/user/month. ",
+ "admin.billing.subscription.planDetails.productName.cloudAdvanced": "Cloud Enterprise Advanced",
"admin.billing.subscription.planDetails.productName.cloudEnterprise": "Cloud Enterprise",
"admin.billing.subscription.planDetails.productName.cloudFree": "Cloud Free",
"admin.billing.subscription.planDetails.productName.cloudProfessional": "Cloud Professional",
@@ -492,7 +491,6 @@
"admin.billing.subscription.privateCloudCard.cloudProfessional.description": "Advanced security and compliance features with premium support. See {pricingLink} for more details.",
"admin.billing.subscription.privateCloudCard.cloudProfessional.title": "Upgrade to Cloud Enterprise",
"admin.billing.subscription.privateCloudCard.contactSales": "Contact Sales",
- "admin.billing.subscription.privateCloudCard.contactSalesy": "Contact sales",
"admin.billing.subscription.privateCloudCard.contactSupport": "Contact Support",
"admin.billing.subscription.privateCloudCard.freeTrial.description": "We love to work with our customers and their needs. Contact sales for subscription, billing or trial-specific questions.",
"admin.billing.subscription.privateCloudCard.freeTrial.title": "Questions about your trial?",
@@ -2769,7 +2767,7 @@
"admin.sql.traceTitle": "SQL Statement Logging: ",
"admin.subscription.cloudTrialCard.description": "Your trial ends on {date} {time}. Upgrade to one of our paid plans with no limits.",
"admin.subscription.cloudTrialCard.upgrade": "Upgrade",
- "admin.subscription.cloudTrialCard.upgradeTitle": "Upgrade to one of our paid plans to avoid Free plan data limits",
+ "admin.subscription.cloudTrialCard.upgradeTitle": "Upgrade to one of our paid plans to keep your workspace",
"admin.support.aboutDesc": "The URL for the About link on the Mattermost login and sign-up pages. If this field is empty, the About link is hidden from users.",
"admin.support.aboutTitle": "About Link:",
"admin.support.enableAskCommunityDesc": "When true, \"Ask the community\" link appears on the Mattermost user interface and Help Menu, which allows users to join the Mattermost Community to ask questions and help others troubleshoot issues. When false, the link is hidden from users.",
@@ -3663,6 +3661,9 @@
"channel_settings_modal.header.placeholder": "Enter a header for this channel",
"channel_settings_modal.name.placeholder": "Enter a name for your channel",
"channel_settings_modal.purpose.placeholder": "Enter a purpose for this channel (optional)",
+ "channel_settings.access_rules.description": "Select attributes and values that users must match in addition to access this channel. All selected attributes are required.",
+ "channel_settings.access_rules.subtitle": "Select user attributes and values as rules to restrict channel membership",
+ "channel_settings.access_rules.title": "Access Rules",
"channel_settings.archive.button": "Archive this channel",
"channel_settings.archive.warning": "Archiving a channel removes it from the user interface, but doesn't permanently delete the channel. New messages can't be posted to archived channels.",
"channel_settings.channel_info_tab.name": "Channel Info",
@@ -3680,6 +3681,7 @@
"channel_settings.save_changes_panel.banner_text.required_error": "Channel banner text cannot be empty when enabled",
"channel_settings.save_changes_panel.reset": "Reset",
"channel_settings.save_changes_panel.standard_error": "There are errors in the form above",
+ "channel_settings.tab.access_rules": "Access Rules",
"channel_settings.tab.archive": "Archive Channel",
"channel_settings.tab.configuration": "Configuration",
"channel_settings.tab.info": "Info",
@@ -4295,6 +4297,7 @@
"general_tab.teamNameRestrictions": "Team Name must be {min} or more characters up to a maximum of {max}. You can add a longer team description.",
"generic_btn.cancel": "Cancel",
"generic_btn.save": "Save",
+ "generic_icons.access_rules": "Access Rules Icon",
"generic_icons.add": "Add Icon",
"generic_icons.add-mail": "Add Mail Icon",
"generic_icons.add-reaction": "Add Reaction Icon",
@@ -4734,7 +4737,7 @@
"marketplace_modal.web_marketplace_link.desc": "Connect the tools you use most to Mattermost",
"marketplace_modal.web_marketplace_link.title": "Discover community integrations",
"menu.cloudFree.enterpriseTrialDescription": "Your trial is active until {trialEndDay}. Discover our top Enterprise features. Learn more",
- "menu.cloudFree.enterpriseTrialTitle": "Enterprise Trial",
+ "menu.cloudFree.enterpriseTrialTitle": "Enterprise Advanced Trial",
"menu.cloudFree.postTrial.tryEnterprise": "Interested in a limitless plan with high-security features? See plans",
"message_submit_error.invalidCommand": "Command with a trigger of ''{command}'' not found. ",
"message_submit_error.sendAsMessageLink": "Click here to send as a message.",
diff --git a/webapp/channels/src/selectors/general.ts b/webapp/channels/src/selectors/general.ts
index e38fea69c86..ec8d6b3d700 100644
--- a/webapp/channels/src/selectors/general.ts
+++ b/webapp/channels/src/selectors/general.ts
@@ -30,3 +30,9 @@ export function isDevModeEnabled(state: GlobalState) {
const EnableDeveloper = config && config.EnableDeveloper ? config.EnableDeveloper === 'true' : false;
return EnableDeveloper;
}
+
+// FEATURE_FLAG_REMOVAL: ChannelAdminManageABACRules - Remove this function when feature is GA
+export function isChannelAdminManageABACRulesEnabled(state: GlobalState): boolean {
+ const config = getConfig(state);
+ return config?.FeatureFlagChannelAdminManageABACRules === 'true';
+}
diff --git a/webapp/channels/src/utils/constants.tsx b/webapp/channels/src/utils/constants.tsx
index f49f7299ebe..58f185c336c 100644
--- a/webapp/channels/src/utils/constants.tsx
+++ b/webapp/channels/src/utils/constants.tsx
@@ -518,6 +518,7 @@ export const CloudProducts = {
PROFESSIONAL: 'cloud-professional',
ENTERPRISE: 'cloud-enterprise',
LEGACY: 'cloud-legacy',
+ ADVANCED: 'cloud-advanced',
};
export const CloudBillingTypes = {
diff --git a/webapp/platform/types/src/config.ts b/webapp/platform/types/src/config.ts
index 3a27b4f3905..d89770caf5b 100644
--- a/webapp/platform/types/src/config.ts
+++ b/webapp/platform/types/src/config.ts
@@ -129,6 +129,9 @@ export type ClientConfig = {
FeatureFlagWebSocketEventScope: string;
FeatureFlagInteractiveDialogAppsForm: string;
FeatureFlagContentFlagging: string;
+
+ // FEATURE_FLAG_REMOVAL: ChannelAdminManageABACRules - Remove this property when feature is GA
+ FeatureFlagChannelAdminManageABACRules?: string;
ForgotPasswordLink: string;
GiphySdkKey: string;
GoogleDeveloperKey: string;
@@ -953,7 +956,11 @@ export type CloudSettings = {
PreviewModalBucketURL: string;
};
-export type FeatureFlags = Record;
+export type FeatureFlags = Record & {
+
+ // FEATURE_FLAG_REMOVAL: ChannelAdminManageABACRules - Remove this property when feature is GA
+ ChannelAdminManageABACRules?: string;
+};
export type ImportSettings = {
Directory: string;