Browse Source

rename classes, fix line breaks

pull/2693/head
Fares Eidi 2 years ago
parent
commit
9d2f2f3258
  1. 6
      apps/api/src/decorators/has-permission.decorator.ts
  2. 10
      apps/api/src/guards/has-permission.guard.spec.ts
  3. 7
      apps/api/src/guards/has-permission.guard.ts

6
apps/api/src/decorators/has-permission.decorator.ts

@ -1,4 +1,6 @@
import { SetMetadata } from '@nestjs/common'; import { SetMetadata } from '@nestjs/common';
export const HAS_PERMISSION_KEY = 'has_permission'; 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);
}

10
apps/api/src/guards/has-permissions.guard.spec.ts → apps/api/src/guards/has-permission.guard.spec.ts

@ -1,19 +1,19 @@
import { Test, TestingModule } from '@nestjs/testing'; 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 { Reflector } from '@nestjs/core';
import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host'; import { ExecutionContextHost } from '@nestjs/core/helpers/execution-context-host';
import { HttpException } from '@nestjs/common'; import { HttpException } from '@nestjs/common';
describe('HasPermissionsGuard', () => { describe('HasPermissionGuard', () => {
let guard: HasPermissionsGuard; let guard: HasPermissionGuard;
let reflector: Reflector; let reflector: Reflector;
beforeEach(async () => { beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({ const module: TestingModule = await Test.createTestingModule({
providers: [HasPermissionsGuard, Reflector] providers: [HasPermissionGuard, Reflector]
}).compile(); }).compile();
guard = module.get<HasPermissionsGuard>(HasPermissionsGuard); guard = module.get<HasPermissionGuard>(HasPermissionGuard);
reflector = module.get<Reflector>(Reflector); reflector = module.get<Reflector>(Reflector);
}); });

7
apps/api/src/guards/has-permissions.guard.ts → apps/api/src/guards/has-permission.guard.ts

@ -11,9 +11,9 @@ import { hasPermission } from '@ghostfolio/common/permissions';
@Injectable() @Injectable()
export class HasPermissionsGuard implements CanActivate { 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<string>( const requiredPermission = this.reflector.get<string>(
HAS_PERMISSION_KEY, HAS_PERMISSION_KEY,
context.getHandler() context.getHandler()
@ -23,8 +23,7 @@ export class HasPermissionsGuard implements CanActivate {
return true; // No specific permissions required return true; // No specific permissions required
} }
const request = context.switchToHttp().getRequest(); const { user } = context.switchToHttp().getRequest();
const user = request.user;
if (!user || !hasPermission(user.permissions, requiredPermission)) { if (!user || !hasPermission(user.permissions, requiredPermission)) {
throw new HttpException( throw new HttpException(
Loading…
Cancel
Save