角色权限的更新方法、装置及电子设备与流程

本发明涉及互联网,具体而言,涉及一种角色权限的更新方法、装置及电子设备。
背景技术:
1、开发任何一个系统,必然会面临权限控制的问题,也就是控制哪些用户可以进行哪些操作。在权限控制领域,有多种成熟的模型,例如自主访问控制(discretionaryaccess control,dac),强制访问控制(mandatory access control,mac),基于属性的访问控制(attribute-based access control,abac),基于角色的访问控制(role-basedaccess control,rbac),其中最为常见的是基于角色的访问控制模型。
2、基于角色的权限控制模型中有角色分层的概念,不同层角色之间存在关联关系,当更新某一角色的权限时,可能需要对受到该角色权限限制的角色的权限进行同步更新,目前,相关技术中存在更新效率低的问题。
3、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本发明实施例提供了一种角色权限的更新方法、装置及电子设备,以至少解决相关技术对系统中某一角色的权限进行更新时,对受到该角色权限限制的角色的权限的更新效率低的技术问题。
2、根据本发明实施例的一个方面,提供了一种角色权限的更新方法,包括:在检测到第一角色的系统权限更新的情况下,获取第一角色的系统权限更新后的权限树,得到第一权限树,其中,第一权限树用于表征第一角色针对系统中各个功能模块所拥有的权限;获取第二角色所属的权限树,得到第二权限树,其中,第二角色为系统权限范围处于第一角色更新前的系统权限范围之内的角色;根据第一权限树对第二权限树进行更新,以使第二角色更新后的系统权限范围处于第一角色更新后的系统权限范围之内。
3、进一步地,权限树中包括多层模块节点,各个模块节点存在权限信息,其中,角色权限的更新方法还包括:从第二权限树中确定第一模块节点,其中,第一模块节点为待确定目标权限信息的模块节点;确定第一模块节点在第一权限树中的权限信息,得到第一权限信息,并确定第一模块节点在第二权限树中的权限信息,得到第二权限信息;根据第一权限信息与第二权限信息各自的权限等级,确定第一模块节点在第二权限树中的目标权限信息;在已确定的目标权限信息与第二权限信息不同的情况下,根据已确定的目标权限信息对第二权限树进行更新。
4、进一步地,角色权限的更新方法还包括:在确定第一模块节点在第二权限树中的目标权限信息之后,在第一模块节点存在子模块节点的情况下,根据第一权限信息与第二权限信息各自的权限等级,确定第一模块节点的子模块节点在第二权限树中的目标权限信息。
5、进一步地,角色权限的更新方法还包括:若第一权限信息的权限等级高于第二权限信息的权限等级,或者,第一权限信息与第二权限信息相同,则将第二权限信息确定为第一模块节点的目标权限信息;若第一权限信息的权限等级低于第二权限信息的权限等级,则将第一权限信息确定为第一模块节点的目标权限信息;若第一权限信息的权限等级与第二权限信息的权限等级相同,且第一权限信息与第二权限信息不同,则将预设权限信息确定为第一模块节点的目标权限信息。
6、进一步地,在模块节点的权限信息为非空的情况下,模块节点的子模块节点继承模块节点的权限信息,其中,角色权限的更新方法还包括:在第一权限信息的权限等级为最高权限等级的情况下,确定第一模块节点的子模块节点在第二权限树中的权限信息为该子模块节点的目标权限信息;在第二权限信息的权限等级为最高权限等级的情况下,确定第一模块节点的子模块节点在第一权限树中的权限信息为该子模块节点的目标权限信息;在第一权限信息的权限等级与第二权限信息的权限等级均不是最高权限等级的情况下,将第二权限树中与第一模块节点直接连接的子模块节点确定为更新后的第一模块节点;确定更新后的第一模块节点在第二权限树中的目标权限信息,并在该更新后的第一模块节点存在子模块节点的情况下,确定更新后的第一模块节点的子模块节点在第二权限树中的目标权限信息。
7、进一步地,在权限树中,对于每个模块节点,若该模块节点的权限信息为非空,且存在目标模块节点,则目标模块节点在权限树中处于隐藏状态,其中,目标模块节点是与模块节点直接连接并且与模块节点的权限信息相同的子模块节点,其中,角色权限的更新方法还包括:在第一模块节点在第二权限树中的权限信息为非空的情况下,恢复显示第二权限树中第一模块节点对应的目标模块节点,得到处理后的第二权限树;将处理后的第二权限树中与第一模块节点直接连接的子模块节点确定为更新后的第一模块节点。
8、进一步地,角色权限的更新方法还包括:在第一模块节点在第一权限树中的权限信息为非空的情况下,恢复显示第一权限树中第一模块节点对应的目标模块节点,得到处理后的第一权限树;根据处理后的第一权限树,确定更新后的第一模块节点在第二权限树中的目标权限信息。
9、进一步地,角色权限的更新方法还包括:判断处理后的第一权限树是否包括更新后的第一模块节点;在处理后的第一权限树包括更新后的第一模块节点的情况下,根据处理后的第一权限树,确定更新后的第一模块节点在第二权限树中的目标权限信息。
10、进一步地,角色权限的更新方法还包括:获取角色树,其中,角色树包括多层角色节点,在任意相邻两层角色节点中,上层角色节点对应的系统权限高于下层角色节点对应的系统权限;从角色树中确定与第一角色的角色节点直接连接的下层角色节点,得到第二角色的角色节点;依据与第二角色的角色节点对应的权限树得到第二权限树。
11、进一步地,角色权限的更新方法还包括:在根据第一权限树对第二权限树进行更新之后,获取第三角色的权限树,得到第三权限树,其中,第三角色为系统权限范围处于第二角色更新前的系统权限范围之内的角色;根据更新后的第二权限树对第三权限树进行更新,以使第三角色更新后的系统权限范围处于第二角色更新后的系统权限范围之内。
12、进一步地,角色权限的更新方法还包括:在根据第一权限树对第二权限树进行更新之后,在接收到用户的访问请求的情况下,确定用户所属的角色的权限树,得到目标权限树;确定访问请求访问的接口所对应的权限链,其中,权限链表征访问接口所需的权限,权限链包括具有层级关系的多个模块节点以及最后一层级模块节点所对应的权限信息;将权限链中未进行过匹配处理的最上层级模块节点在目标权限树中的权限信息确定为当前权限信息,并判断当前权限信息与参考权限信息是否匹配,其中,参考权限信息是指权限链中的权限信息;在当前权限信息与参考权限信息匹配的情况下,允许访问请求访问接口。
13、进一步地,角色权限的更新方法还包括:在判断当前权限信息与参考权限信息是否匹配之后,在当前权限信息与参考权限信息不匹配的情况下,从权限链中重新确定未进行过匹配处理的最上层级模块节点,以重新确定当前权限信息;重复执行判断更新后的当前权限信息与参考权限信息是否匹配的步骤,直至更新后的当前权限信息与参考权限信息匹配的情况下,允许访问请求访问接口,或者,直至权限链中不存在未进行过匹配处理的模块节点的情况下,禁止访问请求访问接口。
14、根据本发明实施例的另一方面,还提供了一种角色权限的更新装置,包括:第一获取模块,用于在检测到第一角色的系统权限更新的情况下,获取第一角色的系统权限更新后的权限树,得到第一权限树,其中,第一权限树用于表征第一角色针对系统中各个功能模块所拥有的权限;第二获取模块,用于获取第二角色所属的权限树,得到第二权限树,其中,第二角色为系统权限范围处于第一角色更新前的系统权限范围之内的角色;第一更新模块,用于根据第一权限树对第二权限树进行更新,以使第二角色更新后的系统权限范围处于第一角色更新后的系统权限范围之内。
15、根据本发明实施例的另一方面,还提供了一种电子设备,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的角色权限的更新方法。
16、在本发明实施例中,采用基于权限树对角色的权限进行联动更新的方式,通过在检测到第一角色的系统权限更新的情况下,获取第一角色的系统权限更新后的权限树,得到第一权限树,然后获取第二角色所属的权限树,得到第二权限树,从而根据第一权限树对第二权限树进行更新,以使第二角色更新后的系统权限范围处于第一角色更新后的系统权限范围之内。其中,第一权限树用于表征第一角色针对系统中各个功能模块所拥有的权限,第二角色为系统权限范围处于第一角色更新前的系统权限范围之内的角色。
17、在上述过程中,通过在检测到第一角色的系统权限更新的情况下,获取第一角色对应的第一权限树以及第二角色对应的第二权限树,实现了在系统中某一角色的权限更新的情况下,对该角色以及受到该角色权限限制的角色的系统权限的有效获取。进一步地,通过采用权限树的方式表征第一角色和第二角色的系统权限,实现了采用树形数据结构的方式表征系统权限,从而能够清晰、有序地表示系统功能模块之间的权限关系,提高数据搜索、更新速度,进而使得在根据第一权限树对第二权限树进行更新时,能够有效提高权限更新效率。
18、由此可见,本技术所提供的方案达到了基于权限树对角色的权限进行联动更新的目的,从而实现了提高权限更新效率的技术效果,进而解决了相关技术对系统中某一角色的权限进行更新时,对受到该角色权限限制的角色的权限的更新效率低的技术问题。
技术研发人员:秦利斌,沈捷,黄平,章劲松,项周坤
技术所有人:山石网科通信技术股份有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
