generator-nest-js-boilerplate
Version:
This generator will help you to build your own Nest.js Mongodb API using TypeScript 4
22 lines (15 loc) • 632 B
text/typescript
import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';
import CaslAbilityFactory from '../casl-ability/casl-ability.factory';
import Action from '../casl-ability/enums/casl-action.enum';
()
export default class PoliciesGuard implements CanActivate {
constructor(
private caslAbilityFactory: CaslAbilityFactory,
) {}
async canActivate(context: ExecutionContext): Promise<boolean> {
const { user } = context.switchToHttp().getRequest();
const ability = this.caslAbilityFactory.createForUser(user);
if (ability.can(Action.Manage, 'all')) return true;
return false;
}
}