37 lines
1.2 KiB
TypeScript
Executable File
37 lines
1.2 KiB
TypeScript
Executable File
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 FileMangerPolicy extends BasePolicy {
|
|
async viewList(user: Admins): Promise<AuthorizerResponse> {
|
|
if (!user) return false
|
|
const perms = await getAdminPermissionSlugs(user)
|
|
return perms.has('file_manager.view')
|
|
}
|
|
|
|
async view(user: Admins): Promise<AuthorizerResponse> {
|
|
if (!user) return false
|
|
const perms = await getAdminPermissionSlugs(user)
|
|
return perms.has('file_manager.view')
|
|
}
|
|
|
|
async create(user: Admins): Promise<AuthorizerResponse> {
|
|
if (!user) return false
|
|
const perms = await getAdminPermissionSlugs(user)
|
|
return perms.has('file_manager.create')
|
|
}
|
|
|
|
async update(user: Admins): Promise<AuthorizerResponse> {
|
|
if (!user) return false
|
|
const perms = await getAdminPermissionSlugs(user)
|
|
return perms.has('file_manager.update')
|
|
}
|
|
|
|
async delete(user: Admins): Promise<AuthorizerResponse> {
|
|
if (!user) return false
|
|
const perms = await getAdminPermissionSlugs(user)
|
|
return perms.has('file_manager.delete')
|
|
}
|
|
}
|