Wolkenkit:授权和用户角色的ACL

时间:2017-08-31 08:32:37

标签: authorization acl user-roles wolkenkit

我试图了解如何扩展wolkenkit auth层。

假设我想要具有不同角色的用户:普通用户,主持人和管理员。

  • 正常用户可以查看和修改自己的内容,但不允许修改其他用户的内容。

  • 主持人允许用户修改所有条目,但无权删除除自己内容以外的任何内容。

  • admin 用户可以修改和删除所有内容。

  • 还有未经身份验证的来宾用户,他们可以阅读所有内容但不进行任何修改。

阅读Write model: Configuring authorization的文档我可以通过编写以下内容来模拟来宾 / 正常用例:

const initialState = {
  isAuthorized: {
    commands: {
      issue: { forAuthenticated: false, forPublic: false }
    },
    events: {
      issued: { forAuthenticated: true, forPublic: true }
    }
  }
};

根据我的要求,我需要在此对象中定义其他角色。类似于{ forModerator: true, forAdmin: true }

还有Granting access from a command在运行时更改权限,但我不确定这是否有效。即使它确实如此,也感觉非常黑客。

这有可能吗?

1 个答案:

答案 0 :(得分:1)

免责声明:我是wolkenkit的开发人员之一。

简而言之:不,现在不幸的是,这是不可能的,但这个功能在我们的路线图上。至少在今天,我无法告诉你什么时候可以使用。

您最好的选择是自己做。一种方法可能是使用您的身份提供程序在审阅者的JWT中包含moderator声明,然后在命令处理程序中正确处理。

在命令处理程序中,您可以通过

访问令牌
command.user.token

因此您可以根据需要获得声明。我很抱歉,现在没有更好的答案: - (