我读过一些关于基于角色的访问控制,但还不够清楚处理这种情况:如何实现“用户可以删除自己的帖子”?
对于普通的角色和权限,当用户执行某些操作时,我可以检查用户是否具有角色和权限,并确定用户是否可以执行该操作。
但是对于“用户可以删除自己的帖子”,我必须检查帖子是否属于他。所以我必须对一些东西进行硬编码,然后它就脱离了控制系统的控制。
我是否错过了什么以及如何正确地做到这一点?
我并不完全清楚你想解决什么问题。您总是必须“硬编码”某些内容,因为您需要定义谁可以访问什么。如果您决定某些东西应该在控制系统内,那么它也不会脱离控制系统,这实际上取决于您的实施。
对于您想要做的事情,我通常会定义一个“所有者”角色,然后定义一个访问权限,例如:
"owner" can "delete" "resource"
因此,必须有一些程序化的部分来确定用户是否确实是所有者。通常,这可以通过将每个资源与“ownerId”属性相关联来完成。如果userId == OwnerId,那么当前用户的角色是“owner”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)