​权限管理

系统为政府机构提供了非常丰富的内容管理和动态功能,并且允许二次开发人员扩展更多的功能。为了使这么多的功能能够被不同的部门、岗位和人员合理使用,做到各司其职、互不影响,系统实现了非常灵活的细粒度的、可扩展的权限控制体系。

权限项和权限拥有者

系统实现了最细粒度的权限控制,界面的任何按钮或者UI控件,都可以通过权限控制体系加以限制,做到只有拥有相关权限项的用户才能够使用相应的按钮和UI控件。

可以被授予权限项的目标实体在系统中称之为权限拥有者,主要有三种,分别是:

1、 机构:代表着一个分支机构或者业务部门,可以根据机构的地域或者职能的不同授予不同的权限项;

2、 角色:代表着一个岗位,是为了便于给工作职责相同的用户统一设置权限而设置的。角色必须属于某一个机构;

3、 用户:代表着用户个体,一个用户可以拥有多个角色,但只能属于一个机构。用户的权限是用户拥有的所有角色的权限的合集,再加上单独为此用户授予的权限的集合。

系统支持按权限拥有者授权,即选定一个权限拥有者,为该权限拥有者逐个授予权限项;也支持按权限项授权,即选中一个权限项,逐个为该权限项设定拥有它的权限拥有者。

 分级授权

系统中的机构可以有多级子机构,能够实现按机构分级授权。一般情况下,父机构被授予的权限项的集合是其子机构权限的超集,父机构下的子机构的权限不能超出父机构的权限范围。另一方面,机构下的角色的权限不能超出机构自身的权限范围,机构下的用户一般情况下也不能超出机构自身的权限范围。综上,子机构下的所有权限拥有者的权限都不能超过其父机构的权限范围。系统管理人员创建子机构、角色、用户授权时,不在父机构的权限范围内的权限不可选。

如果一个用户被授予了机构管理、角色管理或用户管理的菜单权限,则此用户可以管理本机构下的权限拥有者,为本机构下的权限拥有者授权,但不能管理父级机构以及同级机构的权限拥有者,也不能修改这些机构下的权限拥有者的权限。通过这种方式,让各个机构能够自主添加本机构下的子机构、角色和用户,提供了最大的灵活性。

除了严格的逐级授权外,父级机构的管理人员还可以通过为子机构下的某个用户赋予父机构下的角色的方式,为子机构下的用户单独提升权限。也可以通过为子机构下的某个用户赋予其他子机构下的角色的方式,实现跨机构授权,以便于更好地适应兼任职务等情况。

可扩展的权限体系

系统中的权限控制体系被设计成可扩展的,二次开发人员可以通过以下三方面扩展权限体系:

1、 权限项:权限项被设计成可扩展,可以通过注册扩展项到相应的扩展服务的方式添加新的权限项。如果是简单权限项,则一般注册到菜单权限扩展服务下;如果是数据权限项,则需要注册到站点权限扩展服务、栏目权限扩展服务等相关的数据类型对应的扩展服务中去。

2、 权限授予界面:各个插件注册了权限项之后,还需要注册自己的权限授予界面,在机构、角色、用户的权限设置界面中显示一个选项卡。通过此选项卡可以让管理人员以各种形式(表格、树形结构等)的界面为权限拥有者授予权限项,并通过统一的权限保存API将各插件注册的权限项保存到对应的数据库记录中。

扫描二维码以在移动设备观看