@@ -16,6 +16,7 @@ import {
16
16
import { locationFilters } from '../location/location.repository' ;
17
17
import { partnershipFilters } from '../partnership/partnership.repository' ;
18
18
import { ProjectFilters } from './dto' ;
19
+ import { projectMemberFilters } from './project-member/project-member.repository' ;
19
20
import { ProjectNameIndex } from './project.repository' ;
20
21
21
22
export const projectFilters = filter . define ( ( ) => ProjectFilters , {
@@ -56,6 +57,22 @@ export const projectFilters = filter.define(() => ProjectFilters, {
56
57
relation ( 'in' , '' , 'member' ) ,
57
58
node ( 'node' ) ,
58
59
] ) ,
60
+ membership : filter . sub ( ( ) => projectMemberFilters ) ( ( sub ) =>
61
+ sub . match ( [
62
+ currentUser ,
63
+ relation ( 'in' , '' , 'user' ) ,
64
+ node ( 'node' , 'ProjectMember' ) ,
65
+ relation ( 'in' , '' , 'member' ) ,
66
+ node ( 'outer' ) ,
67
+ ] ) ,
68
+ ) ,
69
+ members : filter . sub ( ( ) => projectMemberFilters ) ( ( sub ) =>
70
+ sub . match ( [
71
+ node ( 'node' , 'ProjectMember' ) ,
72
+ relation ( 'in' , '' , 'member' ) ,
73
+ node ( 'outer' ) ,
74
+ ] ) ,
75
+ ) ,
59
76
userId : ( { value } ) => ( {
60
77
userId : [
61
78
// TODO We can leak if the project includes this person, if the
0 commit comments