fix(authz): expose canInvite gql queries (#4712)

This commit is contained in:
Chuck Driesler
2025-05-12 21:10:47 +01:00
committed by GitHub
parent 26489fb420
commit 19ea8b2879
8 changed files with 28 additions and 0 deletions
@@ -2586,6 +2586,7 @@ export type ProjectPermissionChecks = {
canCreateComment: PermissionCheckResult;
canCreateModel: PermissionCheckResult;
canDelete: PermissionCheckResult;
canInvite: PermissionCheckResult;
canLeave: PermissionCheckResult;
canLoad: PermissionCheckResult;
canMoveToWorkspace: PermissionCheckResult;
@@ -4850,6 +4851,7 @@ export type WorkspacePaymentMethod = typeof WorkspacePaymentMethod[keyof typeof
export type WorkspacePermissionChecks = {
__typename?: 'WorkspacePermissionChecks';
canCreateProject: PermissionCheckResult;
canInvite: PermissionCheckResult;
canMoveProjectToWorkspace: PermissionCheckResult;
};
@@ -8414,6 +8416,7 @@ export type ProjectPermissionChecksFieldArgs = {
canCreateComment: {},
canCreateModel: {},
canDelete: {},
canInvite: {},
canLeave: {},
canLoad: {},
canMoveToWorkspace: ProjectPermissionChecksCanMoveToWorkspaceArgs,
@@ -9016,6 +9019,7 @@ export type WorkspacePaidPlanPricesFieldArgs = {
}
export type WorkspacePermissionChecksFieldArgs = {
canCreateProject: {},
canInvite: {},
canMoveProjectToWorkspace: WorkspacePermissionChecksCanMoveProjectToWorkspaceArgs,
}
export type WorkspacePlanFieldArgs = {
@@ -15,6 +15,7 @@ type ProjectPermissionChecks {
canRequestRender: PermissionCheckResult!
canPublish: PermissionCheckResult!
canLoad: PermissionCheckResult!
canInvite: PermissionCheckResult!
}
type RootPermissionChecks {
@@ -4,5 +4,6 @@ extend type Workspace {
type WorkspacePermissionChecks {
canCreateProject: PermissionCheckResult!
canInvite: PermissionCheckResult!
canMoveProjectToWorkspace(projectId: String): PermissionCheckResult!
}
@@ -2609,6 +2609,7 @@ export type ProjectPermissionChecks = {
canCreateComment: PermissionCheckResult;
canCreateModel: PermissionCheckResult;
canDelete: PermissionCheckResult;
canInvite: PermissionCheckResult;
canLeave: PermissionCheckResult;
canLoad: PermissionCheckResult;
canMoveToWorkspace: PermissionCheckResult;
@@ -4873,6 +4874,7 @@ export type WorkspacePaymentMethod = typeof WorkspacePaymentMethod[keyof typeof
export type WorkspacePermissionChecks = {
__typename?: 'WorkspacePermissionChecks';
canCreateProject: PermissionCheckResult;
canInvite: PermissionCheckResult;
canMoveProjectToWorkspace: PermissionCheckResult;
};
@@ -6802,6 +6804,7 @@ export type ProjectPermissionChecksResolvers<ContextType = GraphQLContext, Paren
canCreateComment?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canCreateModel?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canDelete?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canInvite?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canLeave?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canLoad?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canMoveToWorkspace?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType, Partial<ProjectPermissionChecksCanMoveToWorkspaceArgs>>;
@@ -7550,6 +7553,7 @@ export type WorkspacePaidPlanPricesResolvers<ContextType = GraphQLContext, Paren
export type WorkspacePermissionChecksResolvers<ContextType = GraphQLContext, ParentType extends ResolversParentTypes['WorkspacePermissionChecks'] = ResolversParentTypes['WorkspacePermissionChecks']> = {
canCreateProject?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canInvite?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType>;
canMoveProjectToWorkspace?: Resolver<ResolversTypes['PermissionCheckResult'], ParentType, ContextType, Partial<WorkspacePermissionChecksCanMoveProjectToWorkspaceArgs>>;
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
};
@@ -106,6 +106,13 @@ export default {
userId: ctx.userId
})
return Authz.toGraphqlResult(canLoad)
},
canInvite: async (parent, _args, ctx) => {
const canInvite = await ctx.authPolicies.project.canInvite({
projectId: parent.projectId,
userId: ctx.userId
})
return Authz.toGraphqlResult(canInvite)
}
},
ModelPermissionChecks: {
@@ -2589,6 +2589,7 @@ export type ProjectPermissionChecks = {
canCreateComment: PermissionCheckResult;
canCreateModel: PermissionCheckResult;
canDelete: PermissionCheckResult;
canInvite: PermissionCheckResult;
canLeave: PermissionCheckResult;
canLoad: PermissionCheckResult;
canMoveToWorkspace: PermissionCheckResult;
@@ -4853,6 +4854,7 @@ export type WorkspacePaymentMethod = typeof WorkspacePaymentMethod[keyof typeof
export type WorkspacePermissionChecks = {
__typename?: 'WorkspacePermissionChecks';
canCreateProject: PermissionCheckResult;
canInvite: PermissionCheckResult;
canMoveProjectToWorkspace: PermissionCheckResult;
};
@@ -15,6 +15,13 @@ export default {
})
return Authz.toGraphqlResult(canCreateProject)
},
canInvite: async (parent, _args, ctx) => {
const canInvite = await ctx.authPolicies.workspace.canInvite({
workspaceId: parent.workspaceId,
userId: ctx.userId
})
return Authz.toGraphqlResult(canInvite)
},
canMoveProjectToWorkspace: async (parent, args, ctx) => {
const canMoveProjectToWorkspace =
await ctx.authPolicies.project.canMoveToWorkspace({
@@ -2590,6 +2590,7 @@ export type ProjectPermissionChecks = {
canCreateComment: PermissionCheckResult;
canCreateModel: PermissionCheckResult;
canDelete: PermissionCheckResult;
canInvite: PermissionCheckResult;
canLeave: PermissionCheckResult;
canLoad: PermissionCheckResult;
canMoveToWorkspace: PermissionCheckResult;
@@ -4854,6 +4855,7 @@ export type WorkspacePaymentMethod = typeof WorkspacePaymentMethod[keyof typeof
export type WorkspacePermissionChecks = {
__typename?: 'WorkspacePermissionChecks';
canCreateProject: PermissionCheckResult;
canInvite: PermissionCheckResult;
canMoveProjectToWorkspace: PermissionCheckResult;
};