[旧文]关于权限的设计(1)
在设计一个灵活的权限管理系统时,不仅要考虑权限分配,还要考虑到权限与界面,功能的挂接,在开发一个基于WEB应用的系统时,可以研究一下Windows的权限管理,大概是这么实现的: 1.用户基本信息表.Users 2.组信息表:Groups 3.组明细表:GroupsDetail 4.用户资源表:UserSource 5.组资源表:GroupSource 6.功能组件列表:Components 用法: 1.组明细表包含组里的用户,如果设计成树型结构则可以形成金字塔型权限管理,目前只实现了二层结构,即组下挂用户(GroupDetail),设计类来实现从组中开用户集合和从用户中列组集合. 2.用户资源表和组资源表,分别记录单个用户能存取的资源明细及组能存取的资源明细,要简化设计,可以只用组资源表,即权限授给组,用户从组中继承权限.在资源表中设属性,可控制资源的存取能力,如(完全控制,改写,只读,不可见等) 3.组件功能列表(Components),设计成树型结构,列出软件里的所有功能,具体用户能存取哪些功能,通过授权放到了资源表里. 4.用户登陆后的权限:用户登录系统,从用户资源表(UserSource)得到用户自已的功能,从(GroupDetail)得到用户所属的组,从(GroupSource)得到这些组的资源,最后形成用户能存取的所有资源. 5.通过这些资源来动态构建用户界面. |
|