18123: Filter uuids by kind before querying API
authorStephen Smith <stephen@curii.com>
Mon, 25 Oct 2021 14:07:37 +0000 (10:07 -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/group-details-panel/group-details-panel-members-middleware-service.ts
src/store/group-details-panel/group-details-panel-permissions-middleware-service.ts

index b9ac0d79a3ed9746be32940aa8f65c9905a51823..22247a8fffcc988c4632c658aa958d7a4d17b93b 100644 (file)
@@ -19,8 +19,8 @@ import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
 
 export const GROUP_DETAILS_MEMBERS_PANEL_ID = 'groupDetailsMembersPanel';
 export const GROUP_DETAILS_PERMISSIONS_PANEL_ID = 'groupDetailsPermissionsPanel';
-export const ADD_GROUP_MEMBERS_DIALOG = 'addGrupMembers';
-export const ADD_GROUP_MEMBERS_FORM = 'addGrupMembers';
+export const ADD_GROUP_MEMBERS_DIALOG = 'addGroupMembers';
+export const ADD_GROUP_MEMBERS_FORM = 'addGroupMembers';
 export const ADD_GROUP_MEMBERS_USERS_FIELD_NAME = 'users';
 export const MEMBER_ATTRIBUTES_DIALOG = 'memberAttributesDialog';
 export const MEMBER_REMOVE_DIALOG = 'memberRemoveDialog';
index 05a12d22a4f7afac41b13dc69d25c05fb5b511d7..36e3c735a2579d56f70ff16c5f5335896925aeea 100644 (file)
@@ -12,6 +12,7 @@ import { FilterBuilder } from 'services/api/filter-builder';
 import { updateResources } from 'store/resources/resources-actions';
 import { getCurrentGroupDetailsPanelUuid, GroupMembersPanelActions } from 'store/group-details-panel/group-details-panel-actions';
 import { LinkClass } from 'models/link';
+import { ResourceKind } from 'models/resource';
 
 export class GroupDetailsPanelMembersMiddlewareService extends DataExplorerMiddlewareService {
 
@@ -41,7 +42,9 @@ export class GroupDetailsPanelMembersMiddlewareService extends DataExplorerMiddl
 
                 const usersIn = await this.services.userService.list({
                     filters: new FilterBuilder()
-                        .addIn('uuid', permissionsIn.items.map(item => item.tailUuid))
+                        .addIn('uuid', permissionsIn.items
+                            .filter((item) => item.tailKind === ResourceKind.USER)
+                            .map(item => item.tailUuid))
                         .getFilters(),
                     count: "none"
                 });
@@ -49,7 +52,9 @@ export class GroupDetailsPanelMembersMiddlewareService extends DataExplorerMiddl
 
                 const projectsIn = await this.services.projectService.list({
                     filters: new FilterBuilder()
-                        .addIn('uuid', permissionsIn.items.map(item => item.tailUuid))
+                        .addIn('uuid', permissionsIn.items
+                            .filter((item) => item.tailKind === ResourceKind.PROJECT)
+                            .map(item => item.tailUuid))
                         .getFilters(),
                     count: "none"
                 });
index 7ce2d380e42c1361f630bc1e0830fbeadbc519d3..9e41409d8053bc3dd3cbbfb8cd14a9a13ba3436a 100644 (file)
@@ -12,6 +12,7 @@ import { FilterBuilder } from 'services/api/filter-builder';
 import { updateResources } from 'store/resources/resources-actions';
 import { getCurrentGroupDetailsPanelUuid, GroupPermissionsPanelActions } from 'store/group-details-panel/group-details-panel-actions';
 import { LinkClass } from 'models/link';
+import { ResourceKind } from 'models/resource';
 
 export class GroupDetailsPanelPermissionsMiddlewareService extends DataExplorerMiddlewareService {
 
@@ -41,7 +42,9 @@ export class GroupDetailsPanelPermissionsMiddlewareService extends DataExplorerM
 
                 const usersOut = await this.services.userService.list({
                     filters: new FilterBuilder()
-                        .addIn('uuid', permissionsOut.items.map(item => item.headUuid))
+                        .addIn('uuid', permissionsOut.items
+                            .filter((item) => item.headKind === ResourceKind.USER)
+                            .map(item => item.headUuid))
                         .getFilters(),
                     count: "none"
                 });
@@ -49,7 +52,9 @@ export class GroupDetailsPanelPermissionsMiddlewareService extends DataExplorerM
 
                 const collectionsOut = await this.services.collectionService.list({
                     filters: new FilterBuilder()
-                        .addIn('uuid', permissionsOut.items.map(item => item.headUuid))
+                        .addIn('uuid', permissionsOut.items
+                            .filter((item) => item.headKind === ResourceKind.COLLECTION)
+                            .map(item => item.headUuid))
                         .getFilters(),
                     count: "none"
                 });
@@ -57,7 +62,9 @@ export class GroupDetailsPanelPermissionsMiddlewareService extends DataExplorerM
 
                 const projectsOut = await this.services.projectService.list({
                     filters: new FilterBuilder()
-                        .addIn('uuid', permissionsOut.items.map(item => item.headUuid))
+                        .addIn('uuid', permissionsOut.items
+                            .filter((item) => item.headKind === ResourceKind.PROJECT)
+                            .map(item => item.headUuid))
                         .getFilters(),
                     count: "none"
                 });