org: add relations.memberof filter to catalog api call

Signed-off-by: Paladetch Usavasereelert <paladetch.u@gmail.com>
This commit is contained in:
Paladetch Usavasereelert
2022-01-28 15:40:07 +09:00
parent aa68de1970
commit bd1a822c6d
2 changed files with 13 additions and 41 deletions
@@ -75,33 +75,6 @@ describe('MemberTab Test', () => {
memberOf: ['team-d'],
},
},
{
apiVersion: 'backstage.io/v1alpha1',
kind: 'User',
metadata: {
name: 'sara.macgovern',
namespace: 'default',
uid: 'a5gerth57',
},
relations: [
{
type: 'memberOf',
target: {
kind: 'group',
name: 'team-d',
namespace: 'foo-bar',
},
},
],
spec: {
profile: {
displayName: 'Sara MacGovern',
email: 'sara-macgovern@example.com',
picture: 'https://example.com/staff/sara.jpeg',
},
memberOf: ['foo-bar/team-d'],
},
},
] as Entity[],
}),
};
@@ -16,8 +16,8 @@
import {
ENTITY_DEFAULT_NAMESPACE,
GroupEntity,
RELATION_MEMBER_OF,
UserEntity,
stringifyEntityRef,
} from '@backstage/catalog-model';
import {
catalogApiRef,
@@ -139,20 +139,19 @@ export const MembersListCard = (_props: {
value: members,
} = useAsync(async () => {
const membersList = await catalogApi.getEntities({
filter: { kind: 'User' },
filter: {
kind: 'User',
'relations.memberof': [
stringifyEntityRef({
kind: 'group',
namespace: groupNamespace.toLocaleLowerCase('en-US'),
name: groupName.toLocaleLowerCase('en-US'),
}),
],
},
});
const groupMembersList = (membersList.items as UserEntity[]).filter(
member =>
member?.relations?.some(
r =>
r.type === RELATION_MEMBER_OF &&
r.target.name.toLocaleLowerCase('en-US') ===
groupName.toLocaleLowerCase('en-US') &&
r.target.namespace.toLocaleLowerCase('en-US') ===
groupNamespace.toLocaleLowerCase('en-US'),
),
);
return groupMembersList;
return membersList.items as UserEntity[];
}, [catalogApi, groupEntity]);
if (loading) {