51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
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 ManageCommentThreadTargetAbilityHandler
|
|
implements IAbilityHandler
|
|
{
|
|
constructor(private readonly prismaService: PrismaService) {}
|
|
|
|
async handle(ability: AppAbility) {
|
|
return ability.can(AbilityAction.Manage, 'CommentThreadTarget');
|
|
}
|
|
}
|
|
|
|
@Injectable()
|
|
export class ReadCommentThreadTargetAbilityHandler implements IAbilityHandler {
|
|
handle(ability: AppAbility) {
|
|
return ability.can(AbilityAction.Read, 'CommentThreadTarget');
|
|
}
|
|
}
|
|
|
|
@Injectable()
|
|
export class CreateCommentThreadTargetAbilityHandler
|
|
implements IAbilityHandler
|
|
{
|
|
handle(ability: AppAbility) {
|
|
return ability.can(AbilityAction.Create, 'CommentThreadTarget');
|
|
}
|
|
}
|
|
|
|
@Injectable()
|
|
export class UpdateCommentThreadTargetAbilityHandler
|
|
implements IAbilityHandler
|
|
{
|
|
handle(ability: AppAbility) {
|
|
return ability.can(AbilityAction.Update, 'CommentThreadTarget');
|
|
}
|
|
}
|
|
|
|
@Injectable()
|
|
export class DeleteCommentThreadTargetAbilityHandler
|
|
implements IAbilityHandler
|
|
{
|
|
handle(ability: AppAbility) {
|
|
return ability.can(AbilityAction.Delete, 'CommentThreadTarget');
|
|
}
|
|
}
|