refactor: change the role to roles and many to many

This commit is contained in:
mahyargdz
2025-02-16 16:58:51 +03:30
parent 9cdd7ef28e
commit ad673613d9
32 changed files with 264 additions and 88 deletions
@@ -2,8 +2,9 @@ import { UseGuards, applyDecorators } from "@nestjs/common";
import { ApiBearerAuth } from "@nestjs/swagger";
import { JwtAuthGuard } from "../../modules/auth/guards/auth.guard";
import { PermissionsGuard } from "../../modules/auth/guards/permission.guard";
import { RoleGuard } from "../../modules/auth/guards/role.guard";
export function AuthGuards() {
return applyDecorators(UseGuards(JwtAuthGuard, RoleGuard), ApiBearerAuth("authorization"));
return applyDecorators(UseGuards(JwtAuthGuard, RoleGuard, PermissionsGuard), ApiBearerAuth("authorization"));
}
@@ -0,0 +1,6 @@
import { SetMetadata } from "@nestjs/common";
import { PermissionEnum } from "../../modules/users/enums/permission.enum";
export const PERMISSION_KEY = "permissions";
export const PermissionsDec = (...permissions: PermissionEnum[]) => SetMetadata(PERMISSION_KEY, permissions);
+4 -3
View File
@@ -1,15 +1,16 @@
import { ExecutionContext, createParamDecorator } from "@nestjs/common";
import { FastifyRequest } from "fastify";
import { User } from "../../modules/users/entities/user.entity";
import { ITokenPayload } from "../../modules/auth/interfaces/IToken-payload";
declare module "fastify" {
interface FastifyRequest {
user?: Omit<User, "password">;
// user?: Omit<User, "password">;
user?: ITokenPayload;
}
}
export const UserDec = createParamDecorator((data: keyof Omit<User, "password"> | undefined, ctx: ExecutionContext) => {
export const UserDec = createParamDecorator((data: keyof ITokenPayload | undefined, ctx: ExecutionContext) => {
const req = ctx.switchToHttp().getRequest<FastifyRequest>();
const user = req.user;