Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>
.contains('Other User')
.parents('tr')
.within(() => {
.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();
});
// Check that other user is visible
cy.get('[data-cy=group-details-permissions-tab]').click();
.contains('Other User')
.parents('tr')
.within(() => {
.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();
});
// Check that other user is hidden
cy.get('[data-cy=group-details-permissions-tab]').click();
cy.get('[data-cy=group-members-data-explorer]')
.within(() => {
cy.get('[data-cy=group-member-add]').should('not.exist');
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');
});
cy.get('[data-cy=resource-delete-button]').should('be.disabled');
cy.get('[data-cy=edit-permission-button]').should('not.exist');
});
-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<LinkResource>(memberLinkUuid)(getState().resources);
async (dispatch: Dispatch, getState: () => RootState, { permissionService }: ServiceRepository) => {
const memberLink = getResource<LinkResource>(memberLinkUuid)(getState().resources);
- if (hide && permissionLinkUuid) {
+ if (!visible && permissionLinkUuid) {
// Remove read permission
try {
await permissionService.delete(permissionLinkUuid);
dispatch<any>(deleteResources([permissionLinkUuid]));
// Remove read permission
try {
await permissionService.delete(permissionLinkUuid);
dispatch<any>(deleteResources([permissionLinkUuid]));
+ dispatch(GroupPermissionsPanelActions.REQUEST_ITEMS());
dispatch(snackbarActions.OPEN_SNACKBAR({
message: 'Removed read permission.',
hideDuration: 2000,
dispatch(snackbarActions.OPEN_SNACKBAR({
message: 'Removed read permission.',
hideDuration: 2000,
kind: SnackbarKind.ERROR,
}));
}
kind: SnackbarKind.ERROR,
}));
}
- } else if (!hide && memberLink) {
+ } else if (visible && memberLink) {
// Create read permission
try {
await permissionService.create({
// Create read permission
try {
await permissionService.create({
const renderIsHidden = (props: {
memberLinkUuid: string,
permissionLinkUuid: string,
const renderIsHidden = (props: {
memberLinkUuid: string,
permissionLinkUuid: string,
canManage: boolean,
setMemberIsHidden: (memberLinkUuid: string, permissionLinkUuid: string, hide: boolean) => void
}) => {
if (props.memberLinkUuid) {
return <Checkbox
canManage: boolean,
setMemberIsHidden: (memberLinkUuid: string, permissionLinkUuid: string, hide: boolean) => void
}) => {
if (props.memberLinkUuid) {
return <Checkbox
- data-cy="user-hidden-checkbox"
+ data-cy="user-visible-checkbox"
+ checked={props.visible}
disabled={!props.canManage}
disabled={!props.canManage}
- onClick={() => props.setMemberIsHidden(props.memberLinkUuid, props.permissionLinkUuid, !props.hidden)} />;
+ onClick={() => props.setMemberIsHidden(props.memberLinkUuid, props.permissionLinkUuid, !props.visible)} />;
} else {
return <Typography />;
}
}
} else {
return <Typography />;
}
}
-export const ResourceLinkTailIsHidden = connect(
+export const ResourceLinkTailIsVisible = connect(
(state: RootState, props: { uuid: string }) => {
const link = getResource<LinkResource>(props.uuid)(state.resources);
const member = getResource<Resource>(link?.tailUuid || '')(state.resources);
(state: RootState, props: { uuid: string }) => {
const link = getResource<LinkResource>(props.uuid)(state.resources);
const member = getResource<Resource>(link?.tailUuid || '')(state.resources);
const isBuiltin = isBuiltinGroup(link?.headUuid || '');
return member?.kind === ResourceKind.USER
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);
}, { setMemberIsHidden }
)(renderIsHidden);
import { DataExplorer } from "views-components/data-explorer/data-explorer";
import { DataColumns } from 'components/data-table/data-table';
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';
import { createTree } from 'models/tree';
import { noop } from 'lodash/fp';
import { RootState } from 'store/store';
FULL_NAME = "Name",
USERNAME = "Username",
ACTIVE = "User Active",
FULL_NAME = "Name",
USERNAME = "Username",
ACTIVE = "User Active",
- HIDDEN = "Member Hidden",
+ VISIBLE = "Visible to other members",
PERMISSION = "Permission",
REMOVE = "Remove",
}
PERMISSION = "Permission",
REMOVE = "Remove",
}
render: uuid => <ResourceLinkTailIsActive uuid={uuid} />
},
{
render: uuid => <ResourceLinkTailIsActive uuid={uuid} />
},
{
- name: GroupDetailsPanelMembersColumnNames.HIDDEN,
+ name: GroupDetailsPanelMembersColumnNames.VISIBLE,
selected: true,
configurable: true,
filters: createTree(),
selected: true,
configurable: true,
filters: createTree(),
- render: uuid => <ResourceLinkTailIsHidden uuid={uuid} />
+ render: uuid => <ResourceLinkTailIsVisible uuid={uuid} />
},
{
name: GroupDetailsPanelMembersColumnNames.PERMISSION,
},
{
name: GroupDetailsPanelMembersColumnNames.PERMISSION,