18123: Fix add and remove group member.
authorStephen Smith <stephen@curii.com>
Thu, 21 Oct 2021 00:55:07 +0000 (20:55 -0400)
committerStephen Smith <stephen@curii.com>
Fri, 19 Nov 2021 19:36:15 +0000 (14:36 -0500)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/store/group-details-panel/group-details-panel-actions.ts
src/store/groups-panel/groups-panel-actions.ts

index e71f75f36c21e7cd5c22eb6e98bc01b6eafecd8c..b9ac0d79a3ed9746be32940aa8f65c9905a51823 100644 (file)
@@ -16,7 +16,6 @@ import { RootState } from 'store/store';
 import { ServiceRepository } from 'services/services';
 import { PermissionResource } from 'models/permission';
 import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
-import { UserResource, getUserDisplayName } from 'models/user';
 
 export const GROUP_DETAILS_MEMBERS_PANEL_ID = 'groupDetailsMembersPanel';
 export const GROUP_DETAILS_PERMISSIONS_PANEL_ID = 'groupDetailsPermissionsPanel';
@@ -108,20 +107,11 @@ export const removeGroupMember = (uuid: string) =>
         const groupUuid = getCurrentGroupDetailsPanelUuid(getState().properties);
 
         if (groupUuid) {
-
-            const group = getResource<GroupResource>(groupUuid)(getState().resources);
-            const user = getResource<UserResource>(groupUuid)(getState().resources);
-
             dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Removing ...', kind: SnackbarKind.INFO }));
 
             await deleteGroupMember({
-                user: {
+                link: {
                     uuid,
-                    name: user ? getUserDisplayName(user) : uuid,
-                },
-                group: {
-                    uuid: groupUuid,
-                    name: group ? group.name : groupUuid,
                 },
                 permissionService,
                 dispatch,
index 0d92e946309b9ca1afb4906a239403167e1c965c..dcf81f2dd51f4c9b6ed957d37fdd30585dfa037a 100644 (file)
@@ -113,8 +113,8 @@ interface AddGroupMemberArgs {
  */
 export const addGroupMember = async ({ user, group, ...args }: AddGroupMemberArgs) => {
     await createPermission({
-        head: { ...user },
-        tail: { ...group },
+        head: { ...group },
+        tail: { ...user },
         permissionLevel: PermissionLevel.CAN_READ,
         ...args,
     });
@@ -144,33 +144,29 @@ const createPermission = async ({ head, tail, permissionLevel, dispatch, permiss
 };
 
 interface DeleteGroupMemberArgs {
-    user: { uuid: string, name: string };
-    group: { uuid: string, name: string };
+    link: { uuid: string };
     dispatch: Dispatch;
     permissionService: PermissionService;
 }
 
-export const deleteGroupMember = async ({ user, group, ...args }: DeleteGroupMemberArgs) => {
+export const deleteGroupMember = async ({ link, ...args }: DeleteGroupMemberArgs) => {
     await deletePermission({
-        tail: group,
-        head: user,
+        uuid: link.uuid,
         ...args,
     });
 };
 
 interface DeletePermissionLinkArgs {
-    head: { uuid: string, name: string };
-    tail: { uuid: string, name: string };
+    uuid: string;
     dispatch: Dispatch;
     permissionService: PermissionService;
 }
 
-export const deletePermission = async ({ head, tail, dispatch, permissionService }: DeletePermissionLinkArgs) => {
+export const deletePermission = async ({ uuid, dispatch, permissionService }: DeletePermissionLinkArgs) => {
     try {
         const permissionsResponse = await permissionService.list({
             filters: new FilterBuilder()
-                .addEqual('tail_uuid', tail.uuid)
-                .addEqual('head_uuid', head.uuid)
+                .addEqual('uuid', uuid)
                 .getFilters()
         });
         const [permission] = permissionsResponse.items;
@@ -181,8 +177,8 @@ export const deletePermission = async ({ head, tail, dispatch, permissionService
         }
     } catch (e) {
         dispatch(snackbarActions.OPEN_SNACKBAR({
-            message: `Could not delete ${tail.name} -> ${head.name} relation`,
+            message: `Could not delete ${uuid} permission`,
             kind: SnackbarKind.ERROR,
         }));
     }
-};
\ No newline at end of file
+};