import { PrismaService } from 'src/database/prisma.service'; import { AbilityAction } from '../ability.action'; import { AppAbility } from '../ability.factory'; import { IAbilityHandler } from '../interfaces/ability-handler.interface'; import { Injectable } from '@nestjs/common'; @Injectable() export class ManageWorkspaceMemberAbilityHandler implements IAbilityHandler { constructor(private readonly prismaService: PrismaService) {} async handle(ability: AppAbility) { return ability.can(AbilityAction.Manage, 'WorkspaceMember'); } } @Injectable() export class ReadWorkspaceMemberAbilityHandler implements IAbilityHandler { handle(ability: AppAbility) { return ability.can(AbilityAction.Read, 'WorkspaceMember'); } } @Injectable() export class CreateWorkspaceMemberAbilityHandler implements IAbilityHandler { handle(ability: AppAbility) { return ability.can(AbilityAction.Create, 'WorkspaceMember'); } } @Injectable() export class UpdateWorkspaceMemberAbilityHandler implements IAbilityHandler { handle(ability: AppAbility) { return ability.can(AbilityAction.Update, 'WorkspaceMember'); } } @Injectable() export class DeleteWorkspaceMemberAbilityHandler implements IAbilityHandler { handle(ability: AppAbility) { return ability.can(AbilityAction.Delete, 'WorkspaceMember'); } }