我正在实施一个产品库存管理网站,具有多层权限。它有一个拥有所有权限的管理员,然后是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.
如何在数据库中隐含此权限树?
权限树的图形方案:
答案 0 :(得分:1)
首先,用户表将是 {id,username,password,...,owner},owner是创建帐户的用户ID 这会创建一个用户树。
然后您需要表单中的ACL表 {userid,updatepriviledgeid,deleteuserid,updateuserid,viewid,...,wholetree,...} 每个条目都是主表中的用户ID(这不是主键) 其余的,例如updatepriviledgeid意味着该用户可以更新用户信息。每条记录都有一个关联的wholetreeupdtae作为布尔值,简化了用户是否拥有整棵树的权限