[MM-64491] Fix system attributes section not appearting w/o a license (#32133)

Этот коммит содержится в:
Ibrahim Serdar Acikgoz
2025-06-27 09:37:58 +02:00
коммит произвёл GitHub
родитель 2b8f7743b6
Коммит 037bff9aa3
3 изменённых файлов: 64 добавлений и 4 удалений

Просмотреть файл

@@ -83,6 +83,7 @@ import {
SystemRolesFeatureDiscovery,
} from './feature_discovery/features';
import AttributeBasedAccessControlFeatureDiscovery from './feature_discovery/features/attribute_based_access_control';
import UserAttributesFeatureDiscovery from './feature_discovery/features/user_attributes';
import FeatureFlags, {messages as featureFlagsMessages} from './feature_flags';
import GroupDetails from './group_settings/group_details';
import GroupSettings from './group_settings/group_settings';
@@ -584,10 +585,7 @@ const AdminDefinition: AdminDefinitionType = {
/>
),
sectionTitle: defineMessage({id: 'admin.sidebar.systemAttributes', defaultMessage: 'System Attributes'}),
isHidden: it.not(it.all(
it.minLicenseTier(LicenseSkus.Enterprise),
it.configIsTrue('FeatureFlags', 'CustomProfileAttributes'),
)),
isHidden: it.not(it.userHasReadPermissionOnSomeResources(RESOURCE_KEYS.USER_MANAGEMENT)),
subsections: {
system_properties: {
url: 'system_attributes/user_attributes',
@@ -602,6 +600,29 @@ const AdminDefinition: AdminDefinitionType = {
component: SystemProperties,
},
},
user_attributes_feature_discovery: {
url: 'system_attributes/user_attributes',
isDiscovery: true,
title: defineMessage({id: 'admin.sidebar.user_attributes', defaultMessage: 'User Attributes'}),
isHidden: it.any(
it.minLicenseTier(LicenseSkus.Enterprise),
it.not(it.enterpriseReady),
it.configIsFalse('FeatureFlags', 'CustomProfileAttributes'),
),
schema: {
id: 'SystemProperties',
name: defineMessage({id: 'admin.sidebar.user_attributes', defaultMessage: 'User Attributes'}),
settings: [
{
type: 'custom',
component: UserAttributesFeatureDiscovery,
key: 'UserAttributesFeatureDiscovery',
isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.ABOUT.EDITION_AND_LICENSE)),
},
],
},
restrictedIndicator: getRestrictedIndicator(true, LicenseSkus.EnterpriseAdvanced),
},
access_control_policy_details_edit: {
url: `system_attributes/attribute_based_access_control/edit_policy/:policy_id(${ID_PATH_PATTERN})`,
isHidden: it.any(

Просмотреть файл

@@ -0,0 +1,37 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import {defineMessage} from 'react-intl';
import {LicenseSkus} from 'utils/constants';
import GroupsSVG from './images/groups_svg';
import FeatureDiscovery from '../index';
const UserAttributesFeatureDiscovery: React.FC = () => {
return (
<FeatureDiscovery
featureName='user_attributes'
minimumSKURequiredForFeature={LicenseSkus.Enterprise}
title={defineMessage({
id: 'admin.user_attributes_feature_discovery.title',
defaultMessage: 'Add critical metadata to user profiles using custom user attributes with Mattermost Enterprise',
})}
copy={defineMessage({
id: 'admin.user_attributes_feature_discovery.desc',
defaultMessage: 'Define and manage organization-specific user profile attributes as that can synchronize with your AD/LDAP or SAML identity provider.',
})}
learnMoreURL='https://docs.mattermost.com/manage/admin/user-attributes.html'
featureDiscoveryImage={
<GroupsSVG
width={294}
height={180}
/>
}
/>
);
};
export default UserAttributesFeatureDiscovery;

Просмотреть файл

@@ -3079,6 +3079,8 @@
"admin.teamSettings.teamDetail.teamName": "<b>Team Name</b>:",
"admin.trial_banner.trial-request.error": "Trial license could not be retrieved. Visit <link>{trialInfoLink}</link> to request a license.",
"admin.true": "True",
"admin.user_attributes_feature_discovery.desc": "Define and manage organization-specific user profile attributes as that can synchronize with your AD/LDAP or SAML identity provider.",
"admin.user_attributes_feature_discovery.title": "Add critical metadata to user profiles using custom user attributes with Mattermost Enterprise",
"admin.user_grid.channel_admin": "Channel Admin",
"admin.user_grid.guest": "Guest",
"admin.user_grid.name": "Name",