roles - 如何在 "User can delete his own posts"模型上实现 "Role-based access control"?

标签 roles access-control rbac

<分区>

我读过一些关于 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

roles - RBAC 角色与业务功能

authorization - Multi-Tenancy 微服务中的 RBAC

java - 根据分配的角色选择的欢迎文件(Java 网络应用程序)?

java - 使用基类实例在派生类中访问的 protected 成员

forms - 使用 PayPal 的 Wordpress 用户角色和报名表

Magento:Storeview 访问

azure - 是否可以为 Azure AD 中的用户或组分配多个角色?

基于节点角色的 Elasticsearch 升级顺序