Apply suggestions from code review
Co-authored-by: Joe Porpeglia <josephp@spotify.com> Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
This commit is contained in:
@@ -27,7 +27,7 @@ describe('AuthorizedLocationService', () => {
|
||||
};
|
||||
const fakePermissionApi = {
|
||||
authorize: jest.fn(),
|
||||
policyDecision: jest.fn(),
|
||||
query: jest.fn(),
|
||||
};
|
||||
|
||||
const mockAllow = () => {
|
||||
|
||||
@@ -25,7 +25,7 @@ describe('AuthorizedRefreshService', () => {
|
||||
};
|
||||
const permissionApi = {
|
||||
authorize: jest.fn(),
|
||||
policyDecision: jest.fn(),
|
||||
query: jest.fn(),
|
||||
};
|
||||
|
||||
afterEach(() => {
|
||||
|
||||
@@ -49,7 +49,7 @@ const fakePermissionApi = {
|
||||
result: AuthorizeResult.ALLOW,
|
||||
},
|
||||
]),
|
||||
policyDecision: jest.fn(),
|
||||
query: jest.fn(),
|
||||
};
|
||||
|
||||
describe('JenkinsApi', () => {
|
||||
|
||||
@@ -57,26 +57,27 @@ const permissionCriteriaSchema: z.ZodSchema<
|
||||
.or(z.object({ not: permissionCriteriaSchema }).strict()),
|
||||
);
|
||||
|
||||
const authorizeDecisionSchema: z.ZodSchema<AuthorizePermissionResponse> =
|
||||
const authorizePermissionResponseSchema: z.ZodSchema<AuthorizePermissionResponse> =
|
||||
z.object({
|
||||
result: z
|
||||
.literal(AuthorizeResult.ALLOW)
|
||||
.or(z.literal(AuthorizeResult.DENY)),
|
||||
});
|
||||
|
||||
const policyDecisionSchema: z.ZodSchema<QueryPermissionResponse> = z.union([
|
||||
z.object({
|
||||
result: z
|
||||
.literal(AuthorizeResult.ALLOW)
|
||||
.or(z.literal(AuthorizeResult.DENY)),
|
||||
}),
|
||||
z.object({
|
||||
result: z.literal(AuthorizeResult.CONDITIONAL),
|
||||
pluginId: z.string(),
|
||||
resourceType: z.string(),
|
||||
conditions: permissionCriteriaSchema,
|
||||
}),
|
||||
]);
|
||||
const queryPermissionResponseSchema: z.ZodSchema<QueryPermissionResponse> =
|
||||
z.union([
|
||||
z.object({
|
||||
result: z
|
||||
.literal(AuthorizeResult.ALLOW)
|
||||
.or(z.literal(AuthorizeResult.DENY)),
|
||||
}),
|
||||
z.object({
|
||||
result: z.literal(AuthorizeResult.CONDITIONAL),
|
||||
pluginId: z.string(),
|
||||
resourceType: z.string(),
|
||||
conditions: permissionCriteriaSchema,
|
||||
}),
|
||||
]);
|
||||
|
||||
const responseSchema = <T>(
|
||||
itemSchema: z.ZodSchema<T>,
|
||||
@@ -122,7 +123,11 @@ export class PermissionClient implements PermissionEvaluator {
|
||||
requests: AuthorizePermissionRequest[],
|
||||
options?: EvaluatorRequestOptions,
|
||||
): Promise<AuthorizePermissionResponse[]> {
|
||||
return this.makeRequest(requests, authorizeDecisionSchema, options);
|
||||
return this.makeRequest(
|
||||
requests,
|
||||
authorizePermissionResponseSchema,
|
||||
options,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -132,7 +137,7 @@ export class PermissionClient implements PermissionEvaluator {
|
||||
queries: QueryPermissionRequest[],
|
||||
options?: EvaluatorRequestOptions,
|
||||
): Promise<QueryPermissionResponse[]> {
|
||||
return this.makeRequest(queries, policyDecisionSchema, options);
|
||||
return this.makeRequest(queries, queryPermissionResponseSchema, options);
|
||||
}
|
||||
|
||||
private async makeRequest<TQuery, TResult>(
|
||||
|
||||
Reference in New Issue
Block a user