TASKS-1823 WebManager module

This commit is contained in:
Igor Martyniuk
2026-08-28 08:35:58 +00:00
parent fdb2cf3837
commit c93d8c025b
654 changed files with 26232 additions and 6075 deletions
@@ -0,0 +1,36 @@
import { BasePolicy } from '@adonisjs/bouncer'
import type { AuthorizerResponse } from '@adonisjs/bouncer/types'
import Admin from '#base_modules/Admin/model/admin'
import { getAdminPermissionSlugs } from '#services/permission_service'
export default class WebManagerPolicy extends BasePolicy {
view(user: Admin): Promise<AuthorizerResponse> {
return this.hasPermission(user, 'web_manager.view')
}
create(user: Admin): Promise<AuthorizerResponse> {
return this.hasPermission(user, 'web_manager.create')
}
update(user: Admin): Promise<AuthorizerResponse> {
return this.hasPermission(user, 'web_manager.update')
}
publish(user: Admin): Promise<AuthorizerResponse> {
return this.hasPermission(user, 'web_manager.publish')
}
delete(user: Admin): Promise<AuthorizerResponse> {
return this.hasPermission(user, 'web_manager.delete')
}
manageSettings(user: Admin): Promise<AuthorizerResponse> {
return this.hasPermission(user, 'web_manager.settings')
}
private async hasPermission(user: Admin, permission: string) {
if (!user) return false
const permissions = await getAdminPermissionSlugs(user)
return permissions.has(permission)
}
}