From 0e7a4e6b38e52ebd7050c04f8c7bae47e791a93c Mon Sep 17 00:00:00 2001 From: Dmitriy Danilov Date: Wed, 12 Oct 2022 19:27:12 +0300 Subject: [PATCH] Hide Apps tab for Admin (#2634) (#4221) * Hide Apps tab for Admin * Made users tab active is apps is not visible * Add loading for groups, fix format issues Co-authored-by: Dmytro Danylov --- frontend/src/Editor/Components/Container.jsx | 2 +- .../ManageGroupPermissionResources.jsx | 841 +++++++++--------- 2 files changed, 424 insertions(+), 419 deletions(-) diff --git a/frontend/src/Editor/Components/Container.jsx b/frontend/src/Editor/Components/Container.jsx index 2ffda2a1e6..3280ff002a 100644 --- a/frontend/src/Editor/Components/Container.jsx +++ b/frontend/src/Editor/Components/Container.jsx @@ -12,7 +12,7 @@ export const Container = function Container({ styles, darkMode, }) { - const { visibility, disabledState, borderRadius,borderColor } = styles; + const { visibility, disabledState, borderRadius, borderColor } = styles; const backgroundColor = ['#fff', '#ffffffff'].includes(styles.backgroundColor) && darkMode ? '#232E3C' : styles.backgroundColor; const computedStyles = { diff --git a/frontend/src/ManageGroupPermissionResources/ManageGroupPermissionResources.jsx b/frontend/src/ManageGroupPermissionResources/ManageGroupPermissionResources.jsx index c2d8981ac7..5d748bd926 100644 --- a/frontend/src/ManageGroupPermissionResources/ManageGroupPermissionResources.jsx +++ b/frontend/src/ManageGroupPermissionResources/ManageGroupPermissionResources.jsx @@ -7,6 +7,8 @@ import { toast } from 'react-hot-toast'; import { Link } from 'react-router-dom'; import { withTranslation } from 'react-i18next'; +import { Loader } from '../ManageSSO/Loader'; + class ManageGroupPermissionResourcesComponent extends React.Component { constructor(props) { super(props); @@ -50,6 +52,7 @@ class ManageGroupPermissionResourcesComponent extends React.Component { groupPermissionService.getGroup(groupPermissionId).then((data) => { this.setState({ groupPermission: data, + currentTab: data?.group === 'admin' ? 'users' : 'apps', isLoadingGroup: false, }); }); @@ -163,11 +166,7 @@ class ManageGroupPermissionResourcesComponent extends React.Component { }; findAppGroupPermission = (app, groupPermissionId) => { - const appGroupPermission = app.app_group_permissions.find( - (permission) => permission.group_permission_id === groupPermissionId - ); - - return appGroupPermission; + return app.app_group_permissions.find((permission) => permission.group_permission_id === groupPermissionId); }; setSelectedUsers = (value) => { @@ -355,443 +354,449 @@ class ManageGroupPermissionResourcesComponent extends React.Component {
-
- +
+
+ {/* Apps Tab */} +
+ {groupPermission?.group !== 'admin' && ( +
+
+ this.setSelectedApps(value)} + printOptions="on-focus" + placeholder={this.props.t( + 'header.organization.menus.manageGroups.permissionResources.addAppsToGroup', + 'Select apps to add to the group' + )} + /> +
+
+
this.addSelectedAppsToGroup(groupPermission.id, selectedAppIds)} + data-cy="add-button" + > + {this.props.t('globals.add', 'Add')} +
-
- )} -
-
-
- - - - - - - - - - {isLoadingGroup || isLoadingApps ? ( + )} +
+
+
+
- {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.name', - 'Name' - )} - - {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.permissions', - 'Permissions' - )} -
+ - - - + + + - ) : ( - appsInGroup.map((app) => ( - - - + + {isLoadingGroup || isLoadingApps ? ( + + + + + + ) : ( + appsInGroup.map((app) => ( + + + + + + )) + )} + +
-
-
-
-
-
-
-
-
+ {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.name', + 'Name' + )} + + {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.permissions', + 'Permissions' + )} +
{app.name} -
- - +
+
+
- {this.canAppGroupPermission(app, groupPermission.id, 'view') && ( +
+
+
+
+
{app.name} +
+ + +
+ {this.canAppGroupPermission(app, groupPermission.id, 'view') && ( +
+ +
+ )} +
+ {groupPermission.group !== 'admin' && ( + { + this.removeAppFromGroup(groupPermission.id, app.id); + }} + data-cy="delete-link" + > + {this.props.t('globals.delete', 'Delete')} + + )} +
+
+
+
+ + {/* Users Tab */} +
+ {groupPermission?.group === 'admin' && ( +
+
+ this.setSelectedUsers(value)} + printOptions="on-focus" + placeholder={this.props.t( + 'header.organization.menus.manageGroups.permissionResources.addUsersToGroup', + 'Select users to add to the group' + )} + /> +
+
+
this.addSelectedUsersToGroup(groupPermission.id, selectedUserIds)} + > + {this.props.t('globals.add', 'Add')} +
+
+
+ )} +
+
+
+ + + + + + + + + + {isLoadingGroup || isLoadingUsers ? ( + + + + + + ) : ( + usersInGroup.map((user) => ( + + + + + + )) + )} + +
+ {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.name', + 'name' + )} + + {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.email', + 'email' + )} +
+
+
+
+
+
+
+
+
{`${user.first_name} ${user.last_name}`}{user.email} + {groupPermission.group !== 'all_users' && ( + { + this.removeUserFromGroup(groupPermission.id, user.id); + }} + > + {this.props.t('globals.delete', 'Delete')} + + )} +
+
+
+
+ + {/* Permissions Tab */} +
+
+
+ + + + + + + + + + {isLoadingGroup ? ( + + + + + + ) : ( + <> + + + - - - )) - )} - -
+ {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.resource', + 'Resource' + )} + + {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.permissions', + 'Permissions' + )} +
+
+
+
+
+
+
+
+
+ {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.apps', + 'Apps' + )} +
+
- )} -
- {groupPermission.group !== 'admin' && ( - { - this.removeAppFromGroup(groupPermission.id, app.id); - }} - data-cy="delete-link" - > - {this.props.t('globals.delete', 'Delete')} - - )} -
-
-
-
+ + + - {/* Users Tab */} -
- {groupPermission?.group === 'admin' && ( -
-
- this.setSelectedUsers(value)} - printOptions="on-focus" - placeholder={this.props.t( - 'header.organization.menus.manageGroups.permissionResources.addUsersToGroup', - 'Select users to add to the group' - )} - /> + + + {this.props.t( + 'header.organization.menus.manageGroups.permissionResources.folder', + 'Folder' + )} + + +
+ +
+ + + + + {this.props.t('globals.environmentVar', 'Environment variables')} + +
+ +
+ + + + + )} + +
-
-
this.addSelectedUsersToGroup(groupPermission.id, selectedUserIds)} - > - {this.props.t('globals.add', 'Add')} -
-
-
- )} -
-
-
- - - - - - - - - - {isLoadingGroup || isLoadingUsers ? ( - - - - - - ) : ( - usersInGroup.map((user) => ( - - - - - - )) - )} - -
- {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.name', - 'name' - )} - - {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.email', - 'email' - )} -
-
-
-
-
-
-
-
-
{`${user.first_name} ${user.last_name}`}{user.email} - {groupPermission.group !== 'all_users' && ( - { - this.removeUserFromGroup(groupPermission.id, user.id); - }} - > - {this.props.t('globals.delete', 'Delete')} - - )} -
-
-
-
- - {/* Permissions Tab */} -
-
-
- - - - - - - - - - {isLoadingGroup ? ( - - - - - - ) : ( - <> - - - - - - - - - - - - - - - - - - )} - -
- {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.resource', - 'Resource' - )} - - {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.permissions', - 'Permissions' - )} -
-
-
-
-
-
-
-
-
- {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.apps', - 'Apps' - )} - -
- - -
-
- {this.props.t( - 'header.organization.menus.manageGroups.permissionResources.folder', - 'Folder' - )} - -
- -
-
{this.props.t('globals.environmentVar', 'Environment variables')} -
- -
-
-
+ )}