如何在羽毛中“限制所有者”但允许“管理员”角色

时间:2018-10-26 12:39:40

标签: authentication permissions hook rbac feathersjs

我使用羽毛许可和羽毛认证挂钩来构建RBAC系统,但仍然无法实现。我想要的例如:

  • 允许用户仅查看/更新他们自己的帐户。
  • 允许管理员查看/更新任何帐户。
  before: {
    all: [],
    find: [authenticate('jwt'), checkPermissions({roles: ['admin']})],
    get: [authenticate('jwt'), checkPermissions({roles: ['admin']}), hooks.restrictToOwner({ownerField: '_id'})],
    create: [hashPassword()],
    update: [hashPassword(), authenticate('jwt'), checkPermissions({roles: ['admin']}), hooks.restrictToOwner({ownerField: '_id'})],
    patch: [hashPassword(), authenticate('jwt'), checkPermissions({roles: ['admin']}), hooks.restrictToOwner({ownerField: '_id'})],
    remove: [authenticate('jwt'), checkPermissions({roles: ['admin']})]
  },

这样,管理员仍然无法查看/更新其他帐户。

有帮助吗?

1 个答案:

答案 0 :(得分:1)

我在feathers-permissions-> Conditionally restricting roles

中找到了答案

此外,是的,最好使用现有的钩子,例如feathers-hooks-common中的钩子。但是,如果这不可行,那么您总是可以创建自己的钩子来满足您的需求。