Merge pull request #28967 from JessicaJHee/dangerouslyAllowSignInWithoutUserInCatalog-config
introduce dangerouslyAllowSignInWithoutUserInCatalog auth resolver config
This commit is contained in:
@@ -139,19 +139,54 @@ export class CatalogAuthResolverContext implements AuthResolverContext {
|
||||
return { entity: result };
|
||||
}
|
||||
|
||||
async signInWithCatalogUser(query: AuthResolverCatalogUserQuery) {
|
||||
const { entity } = await this.findCatalogUser(query);
|
||||
async signInWithCatalogUser(
|
||||
query: AuthResolverCatalogUserQuery,
|
||||
options?: {
|
||||
dangerousEntityRefFallback?: {
|
||||
entityRef:
|
||||
| string
|
||||
| {
|
||||
kind?: string;
|
||||
namespace?: string;
|
||||
name: string;
|
||||
};
|
||||
};
|
||||
},
|
||||
) {
|
||||
try {
|
||||
const { entity } = await this.findCatalogUser(query);
|
||||
|
||||
const { ownershipEntityRefs } = await this.resolveOwnershipEntityRefs(
|
||||
entity,
|
||||
);
|
||||
const { ownershipEntityRefs } = await this.resolveOwnershipEntityRefs(
|
||||
entity,
|
||||
);
|
||||
|
||||
return await this.tokenIssuer.issueToken({
|
||||
claims: {
|
||||
sub: stringifyEntityRef(entity),
|
||||
ent: ownershipEntityRefs,
|
||||
},
|
||||
});
|
||||
return await this.tokenIssuer.issueToken({
|
||||
claims: {
|
||||
sub: stringifyEntityRef(entity),
|
||||
ent: ownershipEntityRefs,
|
||||
},
|
||||
});
|
||||
} catch (error) {
|
||||
if (
|
||||
error?.name !== 'NotFoundError' ||
|
||||
!options?.dangerousEntityRefFallback
|
||||
) {
|
||||
throw error;
|
||||
}
|
||||
const userEntityRef = stringifyEntityRef(
|
||||
parseEntityRef(options.dangerousEntityRefFallback.entityRef, {
|
||||
defaultKind: 'User',
|
||||
defaultNamespace: DEFAULT_NAMESPACE,
|
||||
}),
|
||||
);
|
||||
|
||||
return await this.tokenIssuer.issueToken({
|
||||
claims: {
|
||||
sub: userEntityRef,
|
||||
ent: [userEntityRef],
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async resolveOwnershipEntityRefs(
|
||||
|
||||
Reference in New Issue
Block a user