File

apps/api/src/casl/policy-handlers.ts

Index

Methods

Methods

handle
handle(ability: AppAbility)
Parameters :
Name Type Optional
ability AppAbility No
Returns : boolean
import { UserActionsEnum } from '@starter/api-types';

import { User } from '../users/user.entity';
import { AppAbility } from './casl.factory';

interface IPolicyHandler {
  handle(ability: AppAbility): boolean;
}

type PolicyHandlerCallback = (ability: AppAbility) => boolean;

export type PolicyHandler = IPolicyHandler | PolicyHandlerCallback;

// Policy Handlers

export class DeleteUserPolicyHandler implements IPolicyHandler {
  handle(ability: AppAbility) {
    return ability.can(UserActionsEnum.Delete, User);
  }
}

results matching ""

    No results matching ""