<分区>
我读过一些关于 Role-based access control 的文章, 但不够清楚来处理这种情况:如何实现“用户可以删除自己的帖子”?
对于普通的角色和权限,当用户做某事时,我可以只检查用户是否有角色和权限,并确定用户是否可以做。
但是对于“用户可以删除自己的帖子”,我必须检查帖子是否属于他。所以我必须硬编码一些东西,然后它就不受控制系统的控制了。
我是否遗漏了什么以及如何正确地做到这一点?
<分区>
我读过一些关于 Role-based access control 的文章, 但不够清楚来处理这种情况:如何实现“用户可以删除自己的帖子”?
对于普通的角色和权限,当用户做某事时,我可以只检查用户是否有角色和权限,并确定用户是否可以做。
但是对于“用户可以删除自己的帖子”,我必须检查帖子是否属于他。所以我必须硬编码一些东西,然后它就不受控制系统的控制了。
我是否遗漏了什么以及如何正确地做到这一点?
最佳答案
我不太清楚你要解决什么问题。你总是必须“硬编码”一些东西,因为你需要定义谁可以访问什么。如果您决定某些东西应该在控制系统中,它也不会超出控制系统,这实际上取决于您的实现。
对于您想要做的事情,我通常会定义一个“所有者”角色,然后定义一个访问权限,例如:
"owner" can "delete" "resource"
因此必须有一些程序部分,您可以在其中确定用户是否确实是所有者。通常,这可以通过将每个资源与例如“ownerId”属性相关联来完成。如果userId == ownerId,那么当前用户的角色就是“owner”。
关于roles - 如何在 "User can delete his own posts"模型上实现 "Role-based access control"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13109990/
相关文章:
Tomcat Web 应用程序管理器 - 是否可以限制每个用户角色可以看到的内容?
elasticsearch - MetricBeat kubernetes.apiserver : error getting metrics
authorization - Multi-Tenancy 微服务中的 RBAC
java - 根据分配的角色选择的欢迎文件(Java 网络应用程序)?
java - 使用基类实例在派生类中访问的 protected 成员
forms - 使用 PayPal 的 Wordpress 用户角色和报名表