Wolkenkit:授权和用户角色的 ACL
Wolkenkit: ACLs for authorization and user roles
我正在尝试了解如何扩展 wolkenkit 身份验证层。
假设我想要具有不同角色的用户:普通、版主和管理员。
正常用户可以查看和修改自己的内容,但不允许修改其他用户的内容。
版主 允许用户修改所有条目,但无权删除除自己内容以外的任何内容。
admin用户可以修改和删除所有内容。
还有未经身份验证的 guest 用户可以阅读所有内容但不能修改任何内容。
阅读 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 可以在运行时更改权限,但我不确定这是否可行。即使是这样,也感觉很hacky。
这有可能吗?
免责声明:我是 wolkenkit 的开发者之一。
长话短说:不,不幸的是现在这是不可能的,但这个功能在我们的路线图上。至少今天,我不能告诉你这个什么时候可用。
你最好的选择是自己做。一种方法可能是使用您的身份提供者在主持人的 JWT 中包含一个 moderator
声明,然后在命令处理程序中适当地处理它。
在命令处理程序中,您可以通过
访问令牌
command.user.token
这样您就可以根据需要获得索赔。非常抱歉,目前没有更好的答案:-(
我正在尝试了解如何扩展 wolkenkit 身份验证层。
假设我想要具有不同角色的用户:普通、版主和管理员。
正常用户可以查看和修改自己的内容,但不允许修改其他用户的内容。
版主 允许用户修改所有条目,但无权删除除自己内容以外的任何内容。
admin用户可以修改和删除所有内容。
还有未经身份验证的 guest 用户可以阅读所有内容但不能修改任何内容。
阅读 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 可以在运行时更改权限,但我不确定这是否可行。即使是这样,也感觉很hacky。
这有可能吗?
免责声明:我是 wolkenkit 的开发者之一。
长话短说:不,不幸的是现在这是不可能的,但这个功能在我们的路线图上。至少今天,我不能告诉你这个什么时候可用。
你最好的选择是自己做。一种方法可能是使用您的身份提供者在主持人的 JWT 中包含一个 moderator
声明,然后在命令处理程序中适当地处理它。
在命令处理程序中,您可以通过
访问令牌command.user.token
这样您就可以根据需要获得索赔。非常抱歉,目前没有更好的答案:-(