基于插件的权限系统构想
基于插件的权限系统构想
一、概述:
综合来说,基本思路就是各个插件提供扩展,负责提供权限控制对象(动态提供)和权限类型。
二、操作步骤与思路:
(一) 第一步,选择插件,询问插件的权限控制扩展,得到插件拥有的权限控制对象(简称RCO)的顶级分类。
(二) 第二步,由RCO顶级分类,选择插件提供的RCO(分页,可形成树结构从而形成对象群,即一个对象提供多种类型的RCO)。如,对于应用目录支持插件,其RCO就是应用目录。在这一步可以提供批量或递归的对象选择方式。
(三) 第三步,选择权限类型,可多选,用位与的方式记录数据,要向插件询问提供权限类型的扩展,从而得到插件特有的权限类型值,权限类型的分类法可能要与RCO的分类法有关联,但是是不是要与RCO直接发生关联呢?这点比较犹豫。
(四) 第四步,选择当前控制站的用户或者角色或Team,完成授权。
三、系统级的控制:
为了完成对系统对象的权限控制,应该创建一个独一无二的“系统内核插件”,对一般用户禁止授权。
四、超级管理员的考虑:
是否所有的权限检查都应该有一个超级管理员的下水道?
五、权限检查的方式:
就是求解四元组(插件标识,控制对象/对象群的标识,权限类型/位与值,用户/角色/Team标识)的存在性。
六、动态权限的思考:
要在设计结构上提供动态权限支持太复杂,拟对权限系统扩展“任务调度插件”的一个扩展点,来做数据库级的动态权限支持。