【问题标题】:AdonisJS 'bouncer' package not working as intendedAdonisJS 'bouncer' 包没有按预期工作
【发布时间】: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


    【解决方案1】:

    明白了! This 说:

    • 当 before 挂钩返回 true 或 false 值时,永远不会执行实际的操作回调。
    • 如果您希望保镖执行下一个挂钩或操作回调,请确保返回 undefined。

    这两个语句被遗漏了。 :)

    【讨论】:

      猜你喜欢
      • 2011-08-27
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2020-03-18
      • 2012-06-14
      • 2014-11-15
      • 1970-01-01
      相关资源
      最近更新 更多