用户权限树:如何到达那里?

时间:2012-05-10 16:32:30

标签: php mysql security permissions encapsulation

我正在实施一个产品库存管理网站,具有多层权限。它有一个拥有所有权限的管理员,然后是2,3,4等等......这些权限会更少。但特定用户可以拥有特殊权限,例如创建用户或读取有关其他用户的信息。

考虑以下情况:

 * admin inserted user1, user2 and user3.
 * user1 inserted user4 and user5 under his supervision.
 * user1 edited user4's permission so: user4 can see all user5's
   activity, but user5 cannot see user4's activity.
 * user5 inserted user6 and user7 and can see all their activity, but
   user4 cant!
 * user2 is in the same "level" and user1 and user3, but he cant see
   their sublevels activity.

如何在数据库中隐含此权限树?

权限树的图形方案:

enter image description here

1 个答案:

答案 0 :(得分:1)

首先,用户表将是 {id,username,password,...,owner},owner是创建帐户的用户ID 这会创建一个用户树。

然后您需要表单中的ACL表 {userid,updatepriviledgeid,deleteuserid,updateuserid,viewid,...,wholetree,...} 每个条目都是主表中的用户ID(这不是主键) 其余的,例如updatepriviledgeid意味着该用户可以更新用户信息。每条记录都有一个关联的wholetreeupdtae作为布尔值,简化了用户是否拥有整棵树的权限