【发布时间】:2021-07-24 18:21:23
【问题描述】:
如here所述,我已实现授权:
开始/bouncer.ts:
import Bouncer from '@ioc:Adonis/Addons/Bouncer'
export const { actions } = Bouncer
export const { policies } = Bouncer.registerPolicies({
UserPolicy: () => import('App/Policies/UserPolicy'),
})
app/Policies/UserPolicy.ts:
import { BasePolicy } from '@ioc:Adonis/Addons/Bouncer'
import User from 'App/Models/User'
export default class UserPolicy extends BasePolicy {
public async before(user?: User) {
return user?.isSuperUser
}
public async list(user: User) {
await user.load('policies')
return user.policies.some((policy) => policy.identifier === 'user:list')
}
// ...
}
resources/vires/layouts/main.edge
@can('UserPolicy.list')
<p>Can see users list</p>
@endcan
而且我看不到该段落。事实上,我在动作中放置了console.log,但它没有被执行。我不知道我是否遗漏了什么。任何人都可以解释一下吗?
【问题讨论】:
标签: adonis.js