diff --git a/apps/api/src/decorators/has-permission.decorator.ts b/apps/api/src/decorators/has-permission.decorator.ts index b5dfdfe92..dc65cf82e 100644 --- a/apps/api/src/decorators/has-permission.decorator.ts +++ b/apps/api/src/decorators/has-permission.decorator.ts @@ -1,4 +1,6 @@ import { SetMetadata } from '@nestjs/common'; export const HAS_PERMISSION_KEY = 'has_permission'; -export const HasPermission = (permission: string) => - SetMetadata(HAS_PERMISSION_KEY, permission); + +export function HasPermission(permission: string) { + return SetMetadata(HAS_PERMISSION_KEY, permission); +} diff --git a/apps/api/src/guards/has-permissions.guard.spec.ts b/apps/api/src/guards/has-permission.guard.spec.ts similarity index 85% rename from apps/api/src/guards/has-permissions.guard.spec.ts rename to apps/api/src/guards/has-permission.guard.spec.ts index ab86d4956..70bb1ae7c 100644 --- a/apps/api/src/guards/has-permissions.guard.spec.ts +++ b/apps/api/src/guards/has-permission.guard.spec.ts @@ -1,19 +1,19 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { HasPermissionsGuard } from './has-permissions.guard'; +import { HasPermissionsGuard as HasPermissionGuard } from './has-permission.guard'; import { Reflector } from '@nestjs/core'; import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host'; import { HttpException } from '@nestjs/common'; -describe('HasPermissionsGuard', () => { - let guard: HasPermissionsGuard; +describe('HasPermissionGuard', () => { + let guard: HasPermissionGuard; let reflector: Reflector; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ - providers: [HasPermissionsGuard, Reflector] + providers: [HasPermissionGuard, Reflector] }).compile(); - guard = module.get(HasPermissionsGuard); + guard = module.get(HasPermissionGuard); reflector = module.get(Reflector); }); diff --git a/apps/api/src/guards/has-permissions.guard.ts b/apps/api/src/guards/has-permission.guard.ts similarity index 82% rename from apps/api/src/guards/has-permissions.guard.ts rename to apps/api/src/guards/has-permission.guard.ts index eeb79eda1..1fd434826 100644 --- a/apps/api/src/guards/has-permissions.guard.ts +++ b/apps/api/src/guards/has-permission.guard.ts @@ -11,9 +11,9 @@ import { hasPermission } from '@ghostfolio/common/permissions'; @Injectable() export class HasPermissionsGuard implements CanActivate { - constructor(private reflector: Reflector) {} + public constructor(private reflector: Reflector) { } - canActivate(context: ExecutionContext): boolean { + public canActivate(context: ExecutionContext): boolean { const requiredPermission = this.reflector.get( HAS_PERMISSION_KEY, context.getHandler() @@ -23,8 +23,7 @@ export class HasPermissionsGuard implements CanActivate { return true; // No specific permissions required } - const request = context.switchToHttp().getRequest(); - const user = request.user; + const { user } = context.switchToHttp().getRequest(); if (!user || !hasPermission(user.permissions, requiredPermission)) { throw new HttpException(