经理对特定操作和资源属性的授权

时间:2019-10-11 07:37:44

标签: php api symfony roles api-platform.com

在ApiPlatform中,我尝试添加一些类似的授权:

  • 用户可以自己进行编辑,但用户名和角色除外。
  • 具有角色APP_USER_EDIT_USERNAME的用户可以编辑所有用户用户名
  • 具有角色APP_USER_EDIT_ROLES的用户可以编辑所有用户角色
  • 具有角色APP_USER_EDIT_PASSWORD的用户可以编辑所有用户密码

我们不能使用Voter,因为它提供了作为对象级别的决定:我们不知道在PUT / PATCH请求中更改了哪个属性。

我尝试使用tge security和security_post_denormalize,但是它导致配置不易阅读,并且不允许为每种可能性定义特定的错误消息。

自定义验证器也无法帮助我,因为在password属性上,我可以知道实际用户,但不能知道当前正在编辑哪个对象。而且绝对不是验证者的角色。

是否有很好的方法来管理对特定属性的特定操作的权限?现在,我来看看动态序列化组,或者为以下项添加特定的入口点:密码,角色,用户名PUT / PATCH操作。

非常感谢。

0 个答案:

没有答案