feat(server): add administrator feature (#6995)

This commit is contained in:
forehalo
2024-05-27 11:17:21 +00:00
parent 5ba9e2e9b1
commit aff166a0ef
23 changed files with 305 additions and 293 deletions

View File

@@ -22,6 +22,8 @@ function extractTokenFromHeader(authorization: string) {
return authorization.substring(7);
}
const PUBLIC_ENTRYPOINT_SYMBOL = Symbol('public');
@Injectable()
export class AuthGuard implements CanActivate, OnModuleInit {
private auth!: AuthService;
@@ -72,9 +74,9 @@ export class AuthGuard implements CanActivate, OnModuleInit {
}
// api is public
const isPublic = this.reflector.get<boolean>(
'isPublic',
context.getHandler()
const isPublic = this.reflector.getAllAndOverride<boolean>(
PUBLIC_ENTRYPOINT_SYMBOL,
[context.getClass(), context.getHandler()]
);
if (isPublic) {
@@ -110,4 +112,4 @@ export const Auth = () => {
};
// api is public accessible
export const Public = () => SetMetadata('isPublic', true);
export const Public = () => SetMetadata(PUBLIC_ENTRYPOINT_SYMBOL, true);

View File

@@ -89,6 +89,7 @@ export class AuthService implements OnApplicationBootstrap {
});
}
await this.quota.switchUserQuota(devUser.id, QuotaType.ProPlanV1);
await this.feature.addAdmin(devUser.id);
await this.feature.addCopilot(devUser.id);
} catch (e) {
// ignore