forked from Chatbot/v3-api
first commit v3 initialiazed a temporary repository for darmanet client
This commit is contained in:
20
src/common/decorators/Identity.decorator.ts
Normal file
20
src/common/decorators/Identity.decorator.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import { createParamDecorator, ExecutionContext } from '@nestjs/common';
|
||||
|
||||
export const CurrentIdentity = createParamDecorator(
|
||||
(data: keyof any, ctx: ExecutionContext) => {
|
||||
const request = ctx.switchToHttp().getRequest();
|
||||
const user = request.user;
|
||||
|
||||
// If a specific property of the user is requested (e.g., user ID or role)
|
||||
// Return just that property; otherwise, return the full user object
|
||||
return data ? user?.[data] : user;
|
||||
},
|
||||
);
|
||||
export const AdminIdentity = createParamDecorator(
|
||||
(data: keyof any, ctx: ExecutionContext) => {
|
||||
const request = ctx.switchToHttp().getRequest();
|
||||
const user = request['admin'];
|
||||
|
||||
return data ? user?.[data] : user;
|
||||
},
|
||||
);
|
||||
8
src/common/decorators/permission.decorator.ts
Normal file
8
src/common/decorators/permission.decorator.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
import { Permission } from 'src/common/types/permissions.catalog';
|
||||
|
||||
export const PERMISSIONS_KEY = 'permissions';
|
||||
|
||||
/** Require ANY of the listed permissions (OR). Owner always passes. */
|
||||
export const Permissions = (...permissions: Permission[]) =>
|
||||
SetMetadata(PERMISSIONS_KEY, permissions);
|
||||
4
src/common/decorators/role.decorator.ts
Normal file
4
src/common/decorators/role.decorator.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
|
||||
export const ROLES_KEY = 'roles';
|
||||
export const Roles = (...roles: string[]) => SetMetadata(ROLES_KEY, roles);
|
||||
4
src/common/decorators/skip-admin-rate-limit.decorator.ts
Normal file
4
src/common/decorators/skip-admin-rate-limit.decorator.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { SetMetadata } from '@nestjs/common';
|
||||
|
||||
export const SKIP_ADMIN_RATE_LIMIT_KEY = 'skipAdminRateLimit';
|
||||
export const SkipAdminRateLimit = () => SetMetadata(SKIP_ADMIN_RATE_LIMIT_KEY, true);
|
||||
Reference in New Issue
Block a user