一尘不染

设计用户角色和权限系统的最佳做法?

mysql

我需要在使用PHP / MySQL构建的Web应用程序中添加用户角色和权限系统。我想要此功能:

  1. 一个root用户可以创建子root,组,规则和普通用户(所有特权)。
  2. 子根只能为其自己的组(无组)创建规则,权限和用户。
  3. 用户可以基于组根分配给他或他的组的权限来访问分配给他或他的组的内容。

我需要系统足够灵活,以便将新角色和权限分配给内容。

我有一个users表,用于存储组密钥以及其他信息。目前,我在每个内容表(即createdBy和)中使用两个字段CreatedByGroup,并将其用作某个用户是否具有权限的要点。但是它不够灵活,因为对于每个新内容,我必须遍历所有数据更新和权限更新。请讨论您的架构设计最佳实践,以帮助我。


阅读 628

收藏
2020-05-17

共1个答案

一尘不染

满足您需求的模式称为基于角色的访问控制

PHP中有几种不错的实现,包括Zend_Acl(很好的文档编制),phpGACLTinyACL。大多数框架还以某种形式拥有自己的ACL实现。

即使您选择自己动手,它也将帮助您查看诸如此类的完善解决方案。

2020-05-17