MM-61751 -Enforce permissions on role detail form. (#29361)

* enforce permissions on role admin form

* update for more missing Hidden checks on detail pages

* add description to roles settings

* update snapshots

* update strings

* remove padding

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Scott Bishel
2025-01-31 07:08:34 -07:00
коммит произвёл GitHub
родитель 341f919fa8
Коммит 7740eb9d43
6 изменённых файлов: 16 добавлений и 3 удалений

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

@@ -573,6 +573,7 @@ const AdminDefinition: AdminDefinitionType = {
}, },
systemScheme: { systemScheme: {
url: 'user_management/permissions/system_scheme', url: 'user_management/permissions/system_scheme',
isHidden: it.not(it.userHasReadPermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)),
isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)), isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)),
schema: { schema: {
id: 'PermissionSystemScheme', id: 'PermissionSystemScheme',
@@ -581,6 +582,7 @@ const AdminDefinition: AdminDefinitionType = {
}, },
teamSchemeDetail: { teamSchemeDetail: {
url: `user_management/permissions/team_override_scheme/:scheme_id(${ID_PATH_PATTERN})`, url: `user_management/permissions/team_override_scheme/:scheme_id(${ID_PATH_PATTERN})`,
isHidden: it.not(it.userHasReadPermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)),
isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)), isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)),
schema: { schema: {
id: 'PermissionSystemScheme', id: 'PermissionSystemScheme',
@@ -589,6 +591,7 @@ const AdminDefinition: AdminDefinitionType = {
}, },
teamScheme: { teamScheme: {
url: 'user_management/permissions/team_override_scheme', url: 'user_management/permissions/team_override_scheme',
isHidden: it.not(it.userHasReadPermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)),
isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)), isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.PERMISSIONS)),
schema: { schema: {
id: 'PermissionSystemScheme', id: 'PermissionSystemScheme',
@@ -610,6 +613,10 @@ const AdminDefinition: AdminDefinitionType = {
}, },
system_role: { system_role: {
url: `user_management/system_roles/:role_id(${ID_PATH_PATTERN})`, url: `user_management/system_roles/:role_id(${ID_PATH_PATTERN})`,
isHidden: it.any(
it.not(it.licensedForFeature('LDAPGroups')),
it.not(it.userHasReadPermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.SYSTEM_ROLES)),
),
isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.SYSTEM_ROLES)), isDisabled: it.not(it.userHasWritePermissionOnResource(RESOURCE_KEYS.USER_MANAGEMENT.SYSTEM_ROLES)),
schema: { schema: {
id: 'SystemRole', id: 'SystemRole',

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

@@ -108,6 +108,7 @@ exports[`admin_console/system_role_permissions should match snapshot 1`] = `
}, },
Object { Object {
"disabled": true, "disabled": true,
"hasDescription": true,
"name": "user_management_system_roles", "name": "user_management_system_roles",
}, },
], ],
@@ -483,6 +484,7 @@ exports[`admin_console/system_role_permissions should match snapshot with isLice
}, },
Object { Object {
"disabled": true, "disabled": true,
"hasDescription": true,
"name": "user_management_system_roles", "name": "user_management_system_roles",
}, },
], ],

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

@@ -107,6 +107,10 @@ export const sectionStrings: Record<string, Record<string, MessageDescriptor>> =
id: 'admin.permissions.sysconsole_section_user_management_system_roles.name', id: 'admin.permissions.sysconsole_section_user_management_system_roles.name',
defaultMessage: 'Delegated Granular Administration', defaultMessage: 'Delegated Granular Administration',
}, },
description: {
id: 'admin.permissions.sysconsole_section_user_management_system_roles.description',
defaultMessage: 'Restricts the System Console interface only. The underlying API endpoints are accessible to all users in a read-only state for basic product functionality.',
},
}), }),
environment: defineMessages({ environment: defineMessages({
name: { name: {

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

@@ -151,7 +151,6 @@
.PermissionSection_description { .PermissionSection_description {
span { span {
padding: 0 4px;
border-radius: 2px; border-radius: 2px;
background: rgba(var(--sys-center-channel-color-rgb), 0.08); background: rgba(var(--sys-center-channel-color-rgb), 0.08);
} }

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

@@ -62,7 +62,7 @@ const sectionsList: SystemSection[] = [
{name: 'user_management_teams'}, {name: 'user_management_teams'},
{name: 'user_management_channels'}, {name: 'user_management_channels'},
{name: 'user_management_permissions'}, {name: 'user_management_permissions'},
{name: 'user_management_system_roles', disabled: true}, {name: 'user_management_system_roles', hasDescription: true, disabled: true},
], ],
}, },
{ {

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

@@ -1878,7 +1878,8 @@
"admin.permissions.sysconsole_section_user_management_channels.name": "Channels", "admin.permissions.sysconsole_section_user_management_channels.name": "Channels",
"admin.permissions.sysconsole_section_user_management_groups.name": "Groups", "admin.permissions.sysconsole_section_user_management_groups.name": "Groups",
"admin.permissions.sysconsole_section_user_management_permissions.name": "Permissions", "admin.permissions.sysconsole_section_user_management_permissions.name": "Permissions",
"admin.permissions.sysconsole_section_user_management_system_roles.name": "System Roles", "admin.permissions.sysconsole_section_user_management_system_roles.description": "Setting \"No Access\" restricts the System Console interface only. The underlying API endpoints are accessible to all users in a read-only state for basic product functionality.",
"admin.permissions.sysconsole_section_user_management_system_roles.name": "Delegated Granular Administration",
"admin.permissions.sysconsole_section_user_management_teams.name": "Teams", "admin.permissions.sysconsole_section_user_management_teams.name": "Teams",
"admin.permissions.sysconsole_section_user_management_users.description": "Cannot reset admin passwords", "admin.permissions.sysconsole_section_user_management_users.description": "Cannot reset admin passwords",
"admin.permissions.sysconsole_section_user_management_users.name": "Users", "admin.permissions.sysconsole_section_user_management_users.name": "Users",