import { BasePolicy } from '@adonisjs/bouncer' import type { AuthorizerResponse } from '@adonisjs/bouncer/types' import Admins from '#base_modules/Admin/model/admin' import { getAdminPermissionSlugs } from '#services/permission_service' export default class AdminsPolicy extends BasePolicy { // Example permission slugs: admins.view, admins.create, admins.update, admins.delete async viewList(user: Admins): Promise { if (!user) return false const perms = await getAdminPermissionSlugs(user) return perms.has('admins.view') } async view(user: Admins): Promise { if (!user) return false const perms = await getAdminPermissionSlugs(user) return perms.has('admins.view') } async create(user: Admins): Promise { if (!user) return false const perms = await getAdminPermissionSlugs(user) return perms.has('admins.create') } async update(user: Admins): Promise { if (!user) return false const perms = await getAdminPermissionSlugs(user) return perms.has('admins.update') } async delete(user: Admins): Promise { if (!user) return false const perms = await getAdminPermissionSlugs(user) return perms.has('admins.delete') } }