CN103425654B - 一种权限树联动重现方法、装置及*** - Google Patents
一种权限树联动重现方法、装置及*** Download PDFInfo
- Publication number
- CN103425654B CN103425654B CN201210151189.5A CN201210151189A CN103425654B CN 103425654 B CN103425654 B CN 103425654B CN 201210151189 A CN201210151189 A CN 201210151189A CN 103425654 B CN103425654 B CN 103425654B
- Authority
- CN
- China
- Prior art keywords
- node
- state
- choose
- child
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000003672 processing method Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 24
- 238000009877 rendering Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 10
- 238000010276 construction Methods 0.000 description 8
- 238000009792 diffusion process Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000739 chaotic effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 208000027534 Emotional disease Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种权限树联动重现方法、装置及***,所述方法包括从服务器端获取用户的区域权限逻辑数据或功能权限逻辑数据;依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,设置节点状态的步骤包括:判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态。采用本发明,与现有技术中从下往上确定三态树中节点状态的方法相比,在确定节点状态的效率上有所改进,提高了三态树重现的效率。
Description
技术领域
本发明涉及***权限管理技术领域,具体而言,涉及一种权限树联动重现方法、装置及***,其根据不同用户所拥有的区域权限和功能权限以三态树的形式重现给用户。
背景技术
在门禁监控、动力与环境监控、视频监控等网管***中,只要涉及到***的权限管理,就需要处理一些层次结构对象的显示,例如用户所拥有的监控区域权限、***的功能权限等。在权限管理中,不同的用户是拥有不同的区域权限和功能权限的,当具有用户权限管理功能的用户需要查看某个用户所拥有的区域权限和功能权限时,区域权限树和功能权限树以三态树的形式重现显示,这样可以直观明了地将某用户所拥有的权限展现在用户眼前,其中,所述三态树是指一个树状结构的每个节点包括选中、半选中以及非选中三种状态。
中国专利CN200510098664.7公开了一种网络优化***中网元对象的三态树呈现和定位方法,其对于能够很好的呈现三态树,其主要特征如下:
1、如果一个节点的所有子节点都被选中,则这个节点就处于“选中状态”;
2、如果一个节点的所有子节点都没有被选中,那么这个节点就处于“非选中”状态;
3、如果一个节点的所有子节点中至少有一个子节点被选中,同时至少有一个子节点没有被选中,那么这个节点就处于半选中状态;
4、如果选中某个父节点,则该父节点的所有子节点就会全部选中;
5、如果选中中间层的某个节点,则该中间层的所有子节点全部选中;遍历该中间层的所有兄弟节点,如果该中间层的所有兄弟节点均为选中状态,则该中间层节点的父节点为选中状态;如果该中间层节点的兄弟节点中至少有一个为“非选中”状态,则该中间层节点的父节点为半选中状态,然后寻找该中间层节点的父节点的父节点,直到根节点。
对于该现有技术的上述技术特征1、2、3,在对网元对象进行三态树呈现且需要确定某一个节点的状态时,要搜索完该节点的所有子节点的状态之后来才能其确定的状态,呈现效率较低。
对于该现有技术的上述技术特征5,在对网元对象进行三态树呈现中,先从上向下搜索到叶节点,然后从叶节点开始,依次向上搜索,根据兄弟节点的状态确定父节点的状态,这在效率方面也是有待提高的。
对于该现有技术的上述技术特征4,其用在用户权限管理方面,会存在权限扩散问题。
例如,如图1所示,假设用户admin管理的用户test拥有AAA区域权限,其对应的三态树结构如图1所示。
当用户test登陆***,创建其能管理的用户test-a,且给用户test-a授予了如图2所示的区域权限。
当用户admin登陆,查看用户test-a拥有的权限时,如果用该现有技术的上述技术特征4所述的方法联动重现,其三态树的呈现结果将如图3所示,而在实际应用中,用户admin查看用户test-a的权限时,其三态树的呈现应该与图1是一致的,然而,通过该现有技术提供的技术方案,在用户admin查看用户test-a的区域权限时出现了用户权限扩散的问题,从而一定程度上会给用户带来迷惑,降低了用户体验。
另外,对于用户权限管理而言,在实际应用过程中,用户可能会新增或者删除某个区域权限或功能权限,相应地,三态树中的节点对象的状态也会重新确定树中节点的状态,在解决该技术问题时,对于上述现有技术方案,其同样存在用户权限扩散的问题。如图4所示,例如,用户test-a拥有如下区域权限:
若登陆用户添加了AAAC区域,由于AAAC是新增的区域,显然对于该区域用户test-a是没有权限的,如图5所示,当采用上述现有技术中的技术特征4所述的方法重现三态树时,AAAC节点也处于被选中状态,从而产生了权限扩散。
同时,对于此种增加区域节点的情况,例如在基于图4的基础上增加区域AAAC,如果采用上述现有技术方案的技术特征5所述的方法,如图6所示,在进行网元对象三态树重现时,由于AAAC节点的添加导致原AAA节点的状态由选中状态变成半选中状态,并且,节点中心、A、AA应该是半选中状态的,却出现是选中状态,这样一来,导致出现了三态权限树混乱的情况。
发明内容
为了克服现有技术实现三态树重现时引起的权限扩散、三态重现混乱的问题,本发明的目的在于提供一种权限树联动重现方法、装置及***。
为了达到本发明的目的,本发明采用以下技术方案实现:
一种权限树联动重现方法,包括:
从服务器端获取用户的区域权限逻辑数据或功能权限逻辑数据;
依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,设置节点状态的步骤包括:
判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态。
优选地,如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态的处理方法包括:
如果当前节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果当前节点的子节点都不是选中节点,则继续向该当前节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该当前节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果当前节点下的子节点中存在选中节点,且个数小于该当前节点的子节点个数,则设置该当前节点的状态为半选中状态。
优选地,当用户增加或删除了区域对象或功能对象时,还包括如下步骤:
判断该节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态:
如果该节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果该节点的子节点都不是选中节点,则继续向该节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果该节点下的子节点中存在选中节点,且个数小于该节点的子节点个数,则设置该节点的状态为半选中状态。
优选地,从服务器端获取的用户的区域权限逻辑数据或功能权限逻辑数据存储于服务器端的数据库之中,且数据库中只存储了选中的节点ID。
一种权限树联动重现装置,包括:
获取模块,用于从服务器端获取用户的区域权限逻辑数据或功能权限逻辑数据;
呈现模块,用于依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,呈现模块设置节点状态的步骤包括:判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态。
优选地,如果该节点不为叶节点,呈现模块依据其子节点的状态情况设置该节点的状态的处理方法包括:
如果当前节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果当前节点的子节点都不是选中节点,则继续向该当前节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该当前节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果当前节点下的子节点中存在选中节点,且个数小于该当前节点的子节点个数,则设置该当前节点的状态为半选中状态。
优选地,所述权限树联动重现装置还包括:
判断模块,用于判断用户是否增加或删除了区域对象或功能对象,当判断模块判断出用户增加或删除了区域对象或功能对象时,呈现模块还用于设置该节点的状态,包括如下处理步骤:
当判断该节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态:
如果该节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果该节点的子节点都不是选中节点,则继续向该节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果该节点下的子节点中存在选中节点,且个数小于该节点的子节点个数,则设置该节点的状态为半选中状态。
优选地,获取模块从服务器端获取的用户的区域权限逻辑数据或功能权限逻辑数据存储于服务器端的数据库之中,且数据库中只存储了选中的节点ID。
一种权限树联动重现***,包括服务器,还包括如上所述的权限树联动重现装置,所述装置包括:
获取模块,用于从服务器端获取用户的区域权限逻辑数据或功能权限逻辑数据;
呈现模块,用于依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,呈现模块设置节点状态的步骤包括:判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态。
采用本发明,与现有技术中从下往上确定三态树中节点状态的方法相比,在确定节点状态的效率上有所改进,提高了三态树重现的效率。解决了将现有技术用于权限树中引起的权限扩散问题,同时解决了增删节点后重现树的三态问题。
附图说明
图1是现有的三态树呈现方法中三态树结构示意图;
图2是现有的三态树呈现方法中权限示意图;
图3是现有的三态树呈现方法中三态树呈现结构示意图;
图4是现有的三态树呈现方法中权限示意图;
图5是现有的三态树呈现方法中出现权限扩散的示意图;
图6是现有的三态树呈现方法中出现三态权限树混乱的示意图;
图7是本发明实施例提供的在未增加区域对象时的三态树重现算法流程图;
图8是本发明实施例提供的在增加区域对象时的三态树重现算法流程图;
图9是本发明实施例提供的三态树呈现方法中三态树结构示意图;
图10是本发明实施例提供的三态树呈现方法中三态树结构示意图;
图11是本发明实施例提供的三态树呈现方法中三态树结构示意图;
图12是本发明实施例提供的三态树呈现方法中三态树结构示意图;
图13是本发明实施例提供的三态树呈现方法中三态树结构示意图;
图14是本发明实施例提供的权限树联动重现***结构示意图。
本发明目的的实现、功能特点及优异效果,下面将结合具体实施例以及附图做进一步的说明。
具体实施方式
下面结合附图和具体实施例对本发明所述技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明实施例提供的权限树联动重现方法主要是在三态树的重现过程中,实现从上到下的搜索确定树中各节点的状态(选中、半选中、非选中),下面分别予以阐述。
一、未添加区域对象或功能对象的三态树重现处理方法
步骤一、从服务器端获取用户所拥有的区域权限或功能权限,在实际应用中,从服务器端获取的用户权限是从数据库中获取的,通常数据库中只保存了选中的节点ID。
步骤二、从根节点开始遍历并依次设置节点的状态。节点的状态分为“选中”、“半选中”、“非选中”三种状态。每个根节点的状态取决于该节点的子节点的状态,无需根据该根节点下的所有子节点的状态进行判断。因为在给用户授予权限时,处于“选中”状态的节点都保存在用户权限数据表中了(处于“半选”和“不选”的节点未保存到数据表中),如果某个节点是“选中”节点,那么其所有的子节点必定是处于选中状态。所以要确定某个根节点的状态,只需判断该根节点的子节点是否都是选中节点即可确定。确定该根节点的状态的方法分以下两步进行处理:
A、判断当前节点是否是叶节点,其中,当该节点下有子节点时,不为叶节点;当该节点下没有子节点时,为叶节点。如果是叶节点,则判断该节点是否是“选中”节点,如果是“选中”节点,则将该节点设置为“选中”状态;如果不是“选中”节点,则将该节点设置为“非选中”状态。如果该节点不为叶节点,则进入以下处理步骤;
B、确定非叶节点的状态。非叶节点的状态确定主要取决于其子节点的状态,所以在确定当前节点的状态前,先判断该节点的子节点的勾选情况,例如在本发明实施例中,处理方法具体包括如下步骤:
1、如果当前节点下的子节点都是“选中”节点,则返回值为“1”,根据该返回值确定该节点的状态为“选中”状态;
2、如果当前节点的下子节点都不是“选中”节点(值得注意的是,在本发明实施例中,在重现权限树状态的过程中将“半选中”节点也当作“非选中”的节点处理。),则返回值为“0”,则继续向该节点子节点的子节点搜索,只要搜索到“选中”节点就退出搜索,则可确定该节点的状态为“半选中”状态;如果没有搜索到“选中节点”则该节点的状态为“非选中”状态;
3、如果当前节点下的子节点中,存在“选中”节点,且个数小于该节点的子节点个数,则返回值为“2”,根据该返回值确定该节点的状态为“半选中”状态。
二、添加了区域后的三态重现处理算法
对于用户在权限树中新增了节点的问题,处理方法如下:
A、判断用户是否增加或删除了区域对象或功能对象,如果增删了区域对象或功能对象,则进入以下处理步骤B;
B、判断该节点是否是叶节点,即当前节点下是否有子节点。如果是叶节点,则判断当前节点是否是“选中”节点,如果是“选中”节点,则将当前节点设置为“选中”状态;如果不是“选中”节点,则将当前节点设置为“非选中”状态。如果当前节点不为叶节点,则进入以下处理步骤C;
C、主要是确定非叶节点的状态。非叶节点的状态确定主要取决于其子节点的状态,所以在确定当前节点的状态前,先判断该节点的子节点的勾选情况,本发明实施例采用的处理方法具体包括如下步骤:
1、如果当前节点下的子节点都是“选中”节点,则返回值为“1”,然后递归查子节点的子节点中是存在“非选中”的节点,只要找到,则退出搜索,确定当前节点的状态为“选中”状态;
2、如果当前节点的下子节点都不是“选中”节点,则返回值为“0”,则继续向该节点子节点的子节点搜索,只要搜索到“选中”节点就退出搜索,则可确定该节点的状态为“半选中”状态;如果没有搜索到“选中节点”则该节点的状态为“非选中”状态;
3、如果当前节点下的子节点中,存在“选中”节点,且个数小于该节点的子节点个数,则返回值为“2”,根据该返回值确定当前节点的状态为“半选中”状态。
如图7所示,其为本发明实施例提供的在未增加区域对象时的三态树重现算法流程图,其具体流程如下:
步骤1、从应用服务器端获取用户所拥有的区域权限或功能权限到内存列表中。用户拥有的区域权限和功能权限对应于三态树中处于“选中”状态的节点。
步骤2、判断***是否新增了区域节点。
步骤3、从根节点开始遍历,从上往下开始遍历设置树中每个节点的状态。该遍历步骤主要分为以下3步:
1、判断当前节点是否是叶节点,如果是叶节点,则判断内存列表中该节点是否是选中节点,如果是,则设置该节点为“选中”状态;如果不是,则设置该节点为“非选中”状态;
2、如果当前节点不是叶节点,则根据该节点的子节点确定该节点的状态,其具体方法为:
1)如果当前节点的子节点都能在内存列表中找到,则可确定该节点为“选中”状态。如图9所示,用户没有增加区域,对于A节点,其子节点AA、AB、AC都是选中节点,这些选中节点都会保存在内存列表中,故由AA、AB、AC即可确定A节点为“选中”状态。
2)如果该节点的子节点只有部分能在内存列表中不到,则可确定该节点为“半选中”状态。如图10所示,对于“中心”这个节点,在内存列表中只能找到A节点,B节点是未选中节点,则可以确定“中心”这个节点是“半选中”状态。
3)如果当前节点的子节点在内存列表中找不到,则递归向下搜索该子节点,只要能在该节点的所有子节点中找到 “选中”的节点,则该当前节点即可设置为“半选中”状态,返回设置下节点;如果在该节点的所有子节点中找不到 “选中”的节点,则当前节点即可设置为“非选中”状态。如图11所示,对于“中心”这个节点而言,其子节点A和 B都不能在内存列表中找到,则继续向下搜索,当搜索到A的子节点中有一个AB在内存列表中,则退出搜索,确定A节点为“半选中”状态。如图12所示,对于AA节点而言,其子节点AAA、AAB、AAC在内存列表中都找不到,则确定AA节点为“非选中”状态。
3、递归设置树中所有节点的状态。
如图8所示,其为本发明实施例提供的在增加区域对象时的三态树重现算法流程图,其主要步骤与未添加区域的三态重现处理算法一样,只是在遍历步骤略有不同。例如,如果用户在AA节点下增加了AAD区域,此时,在权限上来讲,AAD区域不被用户test-a所拥有,但是从服务器获取的权限的列表内存中,A的子区域AA、AB、AC依然是选中“节点”,却并不能就此确定A的状态为“选中”状态,需要继续向下搜索寻找未选中的节点,只要找到未选中节点,就退出搜索,确定A节点为“半选中”状态。否则,可以确定A节点为“选中”状态,其呈现的三态树结构如图13所示。
相应地,本发明实施例还提供了一种权限树联动重现装置20,如图14所示,包括:
获取模块201,用于从服务器端10获取用户的区域权限逻辑数据或功能权限逻辑数据;优选地,获取模块201从服务器端10获取的用户的区域权限逻辑数据或功能权限逻辑数据存储于服务器端10的数据库之中,且数据库中只存储了选中的节点ID。
呈现模块203,用于依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,呈现模块203设置节点状态的步骤包括:判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态。
在一种优选实施方式中,如果该节点不为叶节点,呈现模块20依据其子节点的状态情况设置该节点的状态的处理方法包括:
1、如果当前节点下的子节点都是选中节点,则设置该节点的状态为选中状态;
2、如果当前节点的子节点都不是选中节点,则继续向该当前节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该当前节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
3、如果当前节点下的子节点中存在选中节点,且个数小于该当前节点的子节点个数,则设置该当前节点的状态为半选中状态。
优选实施方式下,所述权限树联动重现装置还包括:
判断模块202,用于判断用户是否增加或删除了区域对象或功能对象,当判断模块202判断出用户增加或删除了区域对象或功能对象时,呈现模块203还用于设置该节点的状态,包括如下处理步骤:
1、当判断该节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态:
2、如果该节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
3、如果该节点的子节点都不是选中节点,则继续向该节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
4、如果该节点下的子节点中存在选中节点,且个数小于该节点的子节点个数,则设置该节点的状态为半选中状态。
相应地,继续参照图14,本发明实施例还提供了一种权限树联动重现***,包括服务器10,还包括如上所述的权限树联动重现装置20,所述装置20包括:
获取模块201,用于从服务器端10获取用户的区域权限逻辑数据或功能权限逻辑数据;
呈现模块203,用于依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,呈现模块203设置节点状态的步骤包括:判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态。
所述权限树联动重现装置20的详细介绍可以参加上文所述,此处不再对其重复赘述。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种权限树联动重现方法,其特征在于,包括:
从服务器端获取用户的区域权限逻辑数据或功能权限逻辑数据;
依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,设置节点状态的步骤包括:
判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态;
当用户增加或删除了区域对象或功能对象时,还包括如下步骤:
判断该节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态:
如果该节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果该节点的子节点都不是选中节点,则继续向该节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果该节点下的子节点中存在选中节点,且个数小于该节点的子节点个数,则设置该节点的状态为半选中状态。
2.如权利要求1所述的权限树联动重现方法,其特征在于,如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态的处理方法包括:
如果当前节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果当前节点的子节点都不是选中节点,则继续向该当前节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该当前节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果当前节点下的子节点中存在选中节点,且个数小于该当前节点的子节点个数,则设置该当前节点的状态为半选中状态。
3.如权利要求1或2所述的权限树联动重现方法,其特征在于,从服务器端获取的用户的区域权限逻辑数据或功能权限逻辑数据存储于服务器端的数据库之中,且数据库中只存储了选中的节点ID。
4.一种权限树联动重现装置,其特征在于,包括:
获取模块,用于从服务器端获取用户的区域权限逻辑数据或功能权限逻辑数据;
呈现模块,用于依据所述区域权限逻辑数据或功能权限逻辑数据呈现用户权限三态树,并从根节点开始遍历并依次设置节点的状态,其中,呈现模块设置节点状态的步骤包括:判断当前节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态;
所述权限树联动重现装置还包括:
判断模块,用于判断用户是否增加或删除了区域对象或功能对象,当判断模块判断出用户增加或删除了区域对象或功能对象时,呈现模块还用于设置该节点的状态,包括如下处理步骤:
当判断该节点是否为叶节点,如果是叶节点,则判断该节点是否是选中节点,如果是选中节点,则将该节点设置为选中状态,如果不是选中节点,则将该节点设置为非选中状态;如果该节点不为叶节点,则依据其子节点的状态情况设置该节点的状态:
如果该节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果该节点的子节点都不是选中节点,则继续向该节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果该节点下的子节点中存在选中节点,且个数小于该节点的子节点个数,则设置该节点的状态为半选中状态。
5.如权利要求4所述的权限树联动重现装置,其特征在于,如果该节点不为叶节点,呈现模块依据其子节点的状态情况设置该节点的状态的处理方法包括:
如果当前节点下的子节点都是选中节点,则向下搜索未选中的节点,若搜索到未选中节点就退出搜索,并设置该节点的状态为半选中状态,否则,则设置该节点的状态为选中状态;
如果当前节点的子节点都不是选中节点,则继续向该当前节点的子节点向下搜索,若搜索到选中节点就退出搜索,并设置该当前节点的状态为半选中状态;若没有搜索到选中节点,则设置该节点的状态为非选中状态;
如果当前节点下的子节点中存在选中节点,且个数小于该当前节点的子节点个数,则设置该当前节点的状态为半选中状态。
6.如权利要求4或5所述的权限树联动重现装置,其特征在于,获取模块从服务器端获取的用户的区域权限逻辑数据或功能权限逻辑数据存储于服务器端的数据库之中,且数据库中只存储了选中的节点ID。
7.一种权限树联动重现***,包括服务器,其特征在于,还包括如权利要求4-6任一权利要求所述的权限树联动重现装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151189.5A CN103425654B (zh) | 2012-05-16 | 2012-05-16 | 一种权限树联动重现方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151189.5A CN103425654B (zh) | 2012-05-16 | 2012-05-16 | 一种权限树联动重现方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103425654A CN103425654A (zh) | 2013-12-04 |
CN103425654B true CN103425654B (zh) | 2017-07-28 |
Family
ID=49650413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210151189.5A Expired - Fee Related CN103425654B (zh) | 2012-05-16 | 2012-05-16 | 一种权限树联动重现方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103425654B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105653982A (zh) * | 2015-12-31 | 2016-06-08 | 中国建设银行股份有限公司 | 用于数据权限控制的方法和*** |
CN108804678B (zh) * | 2018-06-12 | 2022-04-15 | 深圳市茁壮网络股份有限公司 | 一种列表节点管理方法及装置 |
CN112150687A (zh) * | 2020-09-24 | 2020-12-29 | 深圳市万睿智能科技有限公司 | 一种住宅场景中用户通行权限管理方法及其相关组件 |
CN112685606A (zh) * | 2020-12-31 | 2021-04-20 | 上海氪邦智能技术有限公司 | 权限规则的配置/管理方法、***、计算机介质及终端 |
CN112860692B (zh) * | 2021-01-29 | 2023-07-25 | 城云科技(中国)有限公司 | 一种数据库表结构转换方法、装置及其电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929393A (zh) * | 2005-09-07 | 2007-03-14 | 中兴通讯股份有限公司 | 一种网络优化***中网元对象的三态树呈现和定位方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895503B2 (en) * | 2001-05-31 | 2005-05-17 | Contentguard Holdings, Inc. | Method and apparatus for hierarchical assignment of rights to documents and documents having such rights |
US7644374B2 (en) * | 2005-04-14 | 2010-01-05 | Microsoft Corporation | Computer input control for specifying scope with explicit exclusions |
-
2012
- 2012-05-16 CN CN201210151189.5A patent/CN103425654B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929393A (zh) * | 2005-09-07 | 2007-03-14 | 中兴通讯股份有限公司 | 一种网络优化***中网元对象的三态树呈现和定位方法 |
Non-Patent Citations (3)
Title |
---|
"ExtJS中树形结构级联选中(三态)";jn_nian;《http://jn-nian.iteye.com/blog/1459217 》;20120320;第1-4页 * |
"三态树的实现";mengxiangying504;《http://blog.csdn.net/mengxiangying504/article/details/4621234 》;20090930;第1-6页 * |
"三态选择树实现终结者";王佳豪;《http://www.bianceng.cn/Programming/vc/200710/4680.htm 》;20071006;第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103425654A (zh) | 2013-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103425654B (zh) | 一种权限树联动重现方法、装置及*** | |
CN106294614B (zh) | 用于访问业务的方法和装置 | |
CN106126669B (zh) | 基于标签的用户协同过滤内容推荐方法及装置 | |
CN106155522B (zh) | 会话数据处理、知识库建立、优化、交互方法及装置 | |
CN103729362B (zh) | 导航内容的确定方法和装置 | |
CN109862018A (zh) | 基于用户访问行为的反爬虫方法及*** | |
CN106454431B (zh) | 电视节目推荐方法和*** | |
TW201507486A (zh) | 資訊提供方法 | |
JP2017534952A (ja) | コンテンツ・インターフェイス・レイアウト構築 | |
CN103631769B (zh) | 一种判断文件内容与标题间一致性的方法及装置 | |
CN102520933A (zh) | 一种基于用户权限构建树形菜单的方法及装置 | |
Fan et al. | Critical nodes identification for vulnerability analysis of power communication networks | |
CN103984743B (zh) | 一种管理内存资源的方法及装置 | |
CN107203532A (zh) | 索引***的构建方法、搜索的实现方法及装置 | |
CN106156230A (zh) | 一种生成内链的方法及装置 | |
CN106227870A (zh) | 一种视频网站推荐方法及装置 | |
CN110335123A (zh) | 基于社交电商平台的商品推荐方法、***、计算机可读介质以及装置 | |
CN105574030A (zh) | 一种信息搜索方法及装置 | |
CN103678138A (zh) | 一种生成状态转换测试用例的方法及装置 | |
CN102982034B (zh) | 互联网站内信息的搜索方法和搜索*** | |
CN105608158A (zh) | 一种瀑布流式显示图片的方法和装置 | |
CN105022797A (zh) | 一种资源的主题处理方法和装置 | |
CN105045868B (zh) | 一种搜索热门事件的方法及装置 | |
CN104217016B (zh) | 网页搜索关键词统计方法及装置 | |
CN104010218B (zh) | 一种电视频道的分类方法、查找方法、分类装置及播放设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170728 |
|
CF01 | Termination of patent right due to non-payment of annual fee |