From 7e1669d2263cdf8e9066057fd126007b755ba7f5 Mon Sep 17 00:00:00 2001 From: Stephen Smith Date: Sun, 12 Dec 2021 19:24:17 -0500 Subject: [PATCH] 18123: Invert group member is visible logic Arvados-DCO-1.1-Signed-off-by: Stephen Smith --- cypress/integration/group-manage.spec.js | 6 +++--- .../group-details-panel-actions.ts | 7 ++++--- src/views-components/data-explorer/renderers.tsx | 14 +++++++------- .../group-details-panel/group-details-panel.tsx | 8 ++++---- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/cypress/integration/group-manage.spec.js b/cypress/integration/group-manage.spec.js index e638c648..cae69efb 100644 --- a/cypress/integration/group-manage.spec.js +++ b/cypress/integration/group-manage.spec.js @@ -121,7 +121,7 @@ describe('Group manage tests', function() { .contains('Other User') .parents('tr') .within(() => { - cy.get('[data-cy=user-hidden-checkbox]').click(); + cy.get('[data-cy=user-visible-checkbox]').click(); }); // Check that other user is visible cy.get('[data-cy=group-details-permissions-tab]').click(); @@ -137,7 +137,7 @@ describe('Group manage tests', function() { .contains('Other User') .parents('tr') .within(() => { - cy.get('[data-cy=user-hidden-checkbox]').click(); + cy.get('[data-cy=user-visible-checkbox]').click(); }); // Check that other user is hidden cy.get('[data-cy=group-details-permissions-tab]').click(); @@ -247,7 +247,7 @@ describe('Group manage tests', function() { cy.get('[data-cy=group-members-data-explorer]') .within(() => { cy.get('[data-cy=group-member-add]').should('not.exist'); - cy.get('[data-cy=user-hidden-checkbox] input').should('be.disabled'); + cy.get('[data-cy=user-visible-checkbox] input').should('be.disabled'); cy.get('[data-cy=resource-delete-button]').should('be.disabled'); cy.get('[data-cy=edit-permission-button]').should('not.exist'); }); diff --git a/src/store/group-details-panel/group-details-panel-actions.ts b/src/store/group-details-panel/group-details-panel-actions.ts index 8130869f..e00ff773 100644 --- a/src/store/group-details-panel/group-details-panel-actions.ts +++ b/src/store/group-details-panel/group-details-panel-actions.ts @@ -104,15 +104,16 @@ export const removeGroupMember = (uuid: string) => }; -export const setMemberIsHidden = (memberLinkUuid: string, permissionLinkUuid: string, hide: boolean) => +export const setMemberIsHidden = (memberLinkUuid: string, permissionLinkUuid: string, visible: boolean) => async (dispatch: Dispatch, getState: () => RootState, { permissionService }: ServiceRepository) => { const memberLink = getResource(memberLinkUuid)(getState().resources); - if (hide && permissionLinkUuid) { + if (!visible && permissionLinkUuid) { // Remove read permission try { await permissionService.delete(permissionLinkUuid); dispatch(deleteResources([permissionLinkUuid])); + dispatch(GroupPermissionsPanelActions.REQUEST_ITEMS()); dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Removed read permission.', hideDuration: 2000, @@ -124,7 +125,7 @@ export const setMemberIsHidden = (memberLinkUuid: string, permissionLinkUuid: st kind: SnackbarKind.ERROR, })); } - } else if (!hide && memberLink) { + } else if (visible && memberLink) { // Create read permission try { await permissionService.create({ diff --git a/src/views-components/data-explorer/renderers.tsx b/src/views-components/data-explorer/renderers.tsx index 84d5c569..2ec4bf51 100644 --- a/src/views-components/data-explorer/renderers.tsx +++ b/src/views-components/data-explorer/renderers.tsx @@ -218,23 +218,23 @@ export const ResourceLinkTailIsActive = connect( const renderIsHidden = (props: { memberLinkUuid: string, permissionLinkUuid: string, - hidden: boolean, + visible: boolean, canManage: boolean, setMemberIsHidden: (memberLinkUuid: string, permissionLinkUuid: string, hide: boolean) => void }) => { if (props.memberLinkUuid) { return props.setMemberIsHidden(props.memberLinkUuid, props.permissionLinkUuid, !props.hidden)} />; + onClick={() => props.setMemberIsHidden(props.memberLinkUuid, props.permissionLinkUuid, !props.visible)} />; } else { return ; } } -export const ResourceLinkTailIsHidden = connect( +export const ResourceLinkTailIsVisible = connect( (state: RootState, props: { uuid: string }) => { const link = getResource(props.uuid)(state.resources); const member = getResource(link?.tailUuid || '')(state.resources); @@ -252,8 +252,8 @@ export const ResourceLinkTailIsHidden = connect( const isBuiltin = isBuiltinGroup(link?.headUuid || ''); return member?.kind === ResourceKind.USER - ? { memberLinkUuid: link?.uuid, permissionLinkUuid, hidden: !isVisible, canManage: !isBuiltin } - : { memberLinkUuid: '', permissionLinkUuid: '', hidden: false, canManage: false }; + ? { memberLinkUuid: link?.uuid, permissionLinkUuid, visible: isVisible, canManage: !isBuiltin } + : { memberLinkUuid: '', permissionLinkUuid: '', visible: false, canManage: false }; }, { setMemberIsHidden } )(renderIsHidden); diff --git a/src/views/group-details-panel/group-details-panel.tsx b/src/views/group-details-panel/group-details-panel.tsx index 51107b6b..9f2d3f41 100644 --- a/src/views/group-details-panel/group-details-panel.tsx +++ b/src/views/group-details-panel/group-details-panel.tsx @@ -7,7 +7,7 @@ import { connect } from 'react-redux'; import { DataExplorer } from "views-components/data-explorer/data-explorer"; import { DataColumns } from 'components/data-table/data-table'; -import { ResourceLinkHeadUuid, ResourceLinkTailUuid, ResourceLinkTailEmail, ResourceLinkTailUsername, ResourceLinkHeadPermissionLevel, ResourceLinkTailPermissionLevel, ResourceLinkHead, ResourceLinkTail, ResourceLinkDelete, ResourceLinkTailIsActive, ResourceLinkTailIsHidden } from 'views-components/data-explorer/renderers'; +import { ResourceLinkHeadUuid, ResourceLinkTailUsername, ResourceLinkHeadPermissionLevel, ResourceLinkTailPermissionLevel, ResourceLinkHead, ResourceLinkTail, ResourceLinkDelete, ResourceLinkTailIsActive, ResourceLinkTailIsVisible } from 'views-components/data-explorer/renderers'; import { createTree } from 'models/tree'; import { noop } from 'lodash/fp'; import { RootState } from 'store/store'; @@ -23,7 +23,7 @@ export enum GroupDetailsPanelMembersColumnNames { FULL_NAME = "Name", USERNAME = "Username", ACTIVE = "User Active", - HIDDEN = "Member Hidden", + VISIBLE = "Visible to other members", PERMISSION = "Permission", REMOVE = "Remove", } @@ -58,11 +58,11 @@ export const groupDetailsMembersPanelColumns: DataColumns = [ render: uuid => }, { - name: GroupDetailsPanelMembersColumnNames.HIDDEN, + name: GroupDetailsPanelMembersColumnNames.VISIBLE, selected: true, configurable: true, filters: createTree(), - render: uuid => + render: uuid => }, { name: GroupDetailsPanelMembersColumnNames.PERMISSION, -- 2.30.2