1、 用户(User)可以拥有多个角色(Role),角色可以被分配给多个用户
2、 权限的意思就是对某个资源的某个操作,现在规定:
a) 所谓资源,即系统的模块
b) 所谓操作,包括:增加、删除、修改、查询等操作
3、 权限管理系统的总体功能分为:授权与认证
4、 授权,指将权限授予角色或用户
a) 如果用户A拥有角色B、角色C,那么,缺省的情况下,用户A将拥有被分配给角色A和角色C的所有权限(即默认情况下,用户A继承其拥有的角色所具有的所有权限)
b) 如果用户拥有多个角色,那么用户的权限是这些角色权限的合集
c) 如果用户拥有多个角色,而且角色之间的授权有冲突(比如对同一个资源的同一个操作,一个角色为“允许”,另外一个角色为“不允许”),将以优先级别高的角色为准(所谓优先级别,也就是对于这个用户所拥有的角色而言,是有顺序的,同一个角色在不同的用户那里可能拥有不同的优先级)
d) 除了可以对角色进行授权外,也可以针对用户进行授权,也就是说,将权限授予用户。针对某个资源的所有操作,我们可以设置这些权限对用户来说是“继承”或“不继承”
i. 继承:意思是这些权限将使用其(即用户)所拥有的角色的权限,而不使用其(即用户)单独设置的权限
ii. 不继承:意思是这些权限将使用其单独设置的权限,而不使用其所拥有的角色的权限
5、 认证,指用户访问资源的某些操作时,根据授权,判断是否允许用户的访问
a) 在用户访问的时候,需要进行即时的判断(是否有权访问)
b) 应该提供查询的功能,可以查询某个用户所拥有的所有权限
总体上,可分为模块管理、角色管理和用户管理模块:
模块管理:
模块管理主界面参考:
因为模块是一个树状结构(本系统只支持两级模块的结构),我们可以点击其中一个模块以便打开其子模块来维护,比如点击“信件交流”:
groupManage.zul
- <?page title="groupManage" contentType="text/html;charset=UTF-8"?>
- <zk>
- <window title="角色管理">
- <grid fixedLayout="true">
- <columns>
- <column label="序号" />
- <column label="角色名称" />
- <column label="操作" />
- </columns>
- <rows>
- <row>
- <label value="1" />
- <label value="业务员" />
- <grid fixedLayout="true">
- <rows>
- <row>
- <toolbarbutton label="新建角色"></toolbarbutton>
- <toolbarbutton label="删除角色"></toolbarbutton>
- <toolbarbutton label="角色授权"></toolbarbutton>
- </row>
- </rows>
- </grid>
- </row>
- <row>
- <label value="2" />
- <label value="高管" />
- <grid fixedLayout="true">
- <rows>
- <row>
- <toolbarbutton label="新建角色"></toolbarbutton>
- <toolbarbutton label="删除角色"></toolbarbutton>
- <toolbarbutton label="角色授权"></toolbarbutton>
- </row>
- </rows>
- </grid>
- </row>
- </rows>
- </grid>
- </window>
- </zk>
give.zul
- <?page title="give" contentType="text/html;charset=UTF-8"?>
- <zk>
- <window title="请给 [ 高管 ] 授权" border="normal">
- <tree id="tree" rows="20" style="align:center;" mce_style="align:center;">
- <treecols>
- <treecol label="模块" />
- <treecol label="权限" />
- <treecol label="启用" />
- </treecols>
- <treechildren>
- <treeitem>
- <treerow>
- <treecell label="权限管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- <treechildren>
- <treeitem>
- <treerow>
- <treecell label="模块管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- </treeitem>
- <treeitem>
- <treerow>
- <treecell label="角色管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- </treeitem>
- <treeitem>
- <treerow>
- <treecell label="用户管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- </treeitem>
- </treechildren>
- </treeitem>
- <treeitem>
- <treerow>
- <treecell label="权限管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- <treechildren>
- <treeitem>
- <treerow>
- <treecell label="模块管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- </treeitem>
- <treeitem>
- <treerow>
- <treecell label="角色管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- </treeitem>
- <treeitem>
- <treerow>
- <treecell label="用户管理" />
- <treecell>
- <checkbox />
- 增
- <checkbox />
- 查
- <checkbox />
- 改
- <checkbox />
- 删
- </treecell>
- <treecell>
- <checkbox />
- </treecell>
- </treerow>
- </treeitem>
- </treechildren>
- </treeitem>
- </treechildren>
- </tree>
- <button label="保存" width="20px" />
- </window>
- </zk>
1、 用户(User)可以拥有多个角色(Role),角色可以被分配给多个用户
2、 权限的意思就是对某个资源的某个操作,现在规定:
a) 所谓资源,即系统的模块
b) 所谓操作,包括:增加、删除、修改、查询等操作
3、 权限管理系统的总体功能分为:授权与认证
4、 授权,指将权限授予角色或用户
a) 如果用户A拥有角色B、角色C,那么,缺省的情况下,用户A将拥有被分配给角色A和角色C的所有权限(即默认情况下,用户A继承其拥有的角色所具有的所有权限)
b) 如果用户拥有多个角色,那么用户的权限是这些角色权限的合集
c) 如果用户拥有多个角色,而且角色之间的授权有冲突(比如对同一个资源的同一个操作,一个角色为“允许”,另外一个角色为“不允许”),将以优先级别高的角色为准(所谓优先级别,也就是对于这个用户所拥有的角色而言,是有顺序的,同一个角色在不同的用户那里可能拥有不同的优先级)
d) 除了可以对角色进行授权外,也可以针对用户进行授权,也就是说,将权限授予用户。针对某个资源的所有操作,我们可以设置这些权限对用户来说是“继承”或“不继承”
i. 继承:意思是这些权限将使用其(即用户)所拥有的角色的权限,而不使用其(即用户)单独设置的权限
ii. 不继承:意思是这些权限将使用其单独设置的权限,而不使用其所拥有的角色的权限
5、 认证,指用户访问资源的某些操作时,根据授权,判断是否允许用户的访问
a) 在用户访问的时候,需要进行即时的判断(是否有权访问)
b) 应该提供查询的功能,可以查询某个用户所拥有的所有权限
总体上,可分为模块管理、角色管理和用户管理模块:
模块管理: