CN105677651A - 一种权限树的生成方法及装置 - Google Patents
一种权限树的生成方法及装置 Download PDFInfo
- Publication number
- CN105677651A CN105677651A CN201410658496.1A CN201410658496A CN105677651A CN 105677651 A CN105677651 A CN 105677651A CN 201410658496 A CN201410658496 A CN 201410658496A CN 105677651 A CN105677651 A CN 105677651A
- Authority
- CN
- China
- Prior art keywords
- node
- authorization
- mark
- tree
- authority
- 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.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种权限树的生成方法及装置,用以解决现有技术生成的权限树结构不清晰,无法通过权限树掌握授权节点在基准树上的从属关系的问题。该方法为,首先获取用户的授权节点集合,将其加入权限树中,并采用第一标识进行授权标记;然后依次读取每一个授权节点,并判断当前读取的授权节点的上级节点是否归属于权限树,将不归属于权限树的该上级节点作为连接节点加入权限树中,采用第二标识进行非授权标记,继续处理该上级节点的上级节点执行相同操作,直至根节点;待全部授权节点处理完毕后,将权限树进行呈现,这样生成的权限树能够保留从授权节点到根节点的完整路径,而且能够清晰识别授权节点在基准树上的从属关系。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种权限树的生成方法及装置。
背景技术
树形视图(TreeView)层次关系清晰,适合表现具有分支和层次关系的数据,如行政区划、文件系统的目录结构,部门关系的组织机构以及数字内容的分类管理等。树形结构形象直观,在计算机应用系统开发时,经常使用树形结构来显示和存储层次数据。
对于多用户的计算机应用系统,不同用户登录系统时,其享有的操作权限也不尽相同,如应用系统的管理员或级别高的领导可以查看树形结构所有节点的内容,部门领导只能查看本部门下属节点的内容,而对于一般操作员,管理员只会授予其少数几个节点相关内容的查看和操作权限,需要过滤掉基准树上操作用户无权限的相关节点及分支、保留基准树上操作用户有权限的节点和分支,对于有权限的节点,如果在同一树支上,需要将该节点的上下级关系保持在显示的场景中,这种数据结构称之为权限树,权限树界面简洁清晰、安全性好。
在具有多个节点的复杂的树结构中,如果某操作用户只有很少的几个节点具有查看和操作权限,树的展示就成了问题。
现有技术有些解决方案直接全部丢弃非授权节点,只保留授权节点并将授权的节点作为列表展示,这样丢弃了基准树节点之间的从属和层次关系。
现有技术另外一些解决方案根据基准树的数据结构将授权节点进行重新组织,得到一个全新的树形结构,这种方式虽然最终也得到树形结构,但其从属关系和基准树是不一样的。
例如,在申请号为201310654772.2的专利基准树中“专家假期公告”的上级节点为“领导假期公告”,而根据集团信息员用户的权限生成的权限树(参照树)中“专家假期公告”的上级节点变成了“栏目”,改变了基准树节点之间的从属关系。
现有技术还有一些解决方案虽然能够保持大部分节点的从属关系,但是对于可见节点和可见数据结构需分别授权,因为授权原因会导致从基准树生成多棵权限树,这样数据处理和展现比较复杂,这种状况也会导致在权限树上难以识别授权节点在基准树上的从属关系。
例如,在申请号为201110367407.4,发明名称为“树形数据结构的展示方法与系统”的中国发明专利中,虽然能够保持大部分节点的从属关系,但是对于可见节点和可见数据结构需分别授权,而且授权时必须保证“所述可见节点在数据结构上为可见数据结构的最高级节点的子节点”,否则会导致权限树生成逻辑上的混乱,而且如第103行所述“如果有多个可见数据结构的最高级节点,那么显示时需要显示为多棵树”,因为授权原因会导致从基准树生成多棵权限树,多棵权限树即为数据结构概念中的森林,数据处理和展现比较复杂,这种状况也会导致在权限树上难以识别授权节点在基准树上的从属关系。
发明内容
本发明的目的是提供一种权限树的生成方法及装置,用于解决现有技术生成的权限树结构不清晰,无法通过权限树掌握授权节点在基准树上的从属关系的问题。
本发明的目的是通过以下技术方案实现的:
一种权限树的生成方法,包括:
获取用户的授权节点集合;
将授权节点集合中的所有节点加入权限树中,采用第一标识对加入权限树的节点进行授权标记后,依次从所述授权节点集合中读取每一个授权节点,判断当前读取的授权节点的上级节点是否已经归属于权限树;若是,说明权限树已经存在所述上级节点;否则,将所述上级节点作为连接节点加入权限树中,并采用第二标识进行非授权标记,以及继续处理所述上级节点的上级节点执行相同操作,直至根节点;
待全部授权节点处理完毕后,将包含有根节点、授权节点和连接节点的权限树进行呈现。
这样,不仅能够实现生成的权限树界面简洁清晰、安全性好,而且能够在权限树上保留所有授权节点到根节点的完整路径,进一步能够清晰识别授权节点在基准树上的从属关系而无关的非授权节点不显示,使得权限树结构清晰。
可选的,将授权节点和连接节点加入权限树中,包括:
将所述授权节点集合中的所有节点全部加入权限树中,授权节点集合中的一个节点生成为权限树中的一个授权节点,并对应当前生成的授权节点,记录所述授权节点的节点名称、节点标识ID、上级节点标识ID和授权标记;
将一个非授权节点作为连接节点加入权限树中,包括:
将所述一个非授权节点生成为权限树中的一个连接节点,并对应当前生成的连接节点,记录所述连接节点的节点名称、节点标识ID,上级节点标识ID和非授权标记。
这样权限树呈现时通过节点标识ID和上级节点标识ID的关联关系确定权限树每条分支的路径,提高权限树的生成效率,能够保证各节点在权限树上的从属关系更加准确。
可选的,进一步包括:
在第一次读取到根节点时,记录所述根节点的节点名称、节点标识ID、上级节点标识ID和授权标记或非授权标记,其中,所述上级节点标识ID的取值为用于表征当前节点为根节点的设定值,一个权限树中存在且仅存在一个根节点,根节点为授权节点或者为连接节点。
可选的,将包含有根节点、授权节点和连接节点的权限树进行呈现,包括:
若当前节点为授权节点,则在呈现过程中,提示用户对当前节点具有操作权限;
若当前节点为连接节点,则在呈现过程中,提示用户对当前节点不具有操作权限。
可选的,进一步包括:
呈现所述权限树后,在接收到用户针对所述权限树中一个节点对应的内容的请求时,判断所述一个节点的类型;
若所述一个节点为授权节点,则直接打开所述一个节点对应的内容;
若所述一个节点为连接节点,则禁止打开所述一个节点对应的内容。
一种权限树的生成装置,包括:
获取单元,用于获取用户的授权节点集合;
处理单元,用于将授权节点集合中的所有节点加入权限树中,采用第一标识对加入权限树的节点进行授权标记后,依次从所述授权节点集合中读取每一个授权节点,判断当前读取的授权节点的上级节点是否已经归属于权限树;若是,说明权限树已经存在所述上级节点;否则,将所述上级节点作为连接节点加入权限树中,并采用第二标识进行非授权标记,以及继续处理所述上级节点的上级节点执行相同操作,直至根节点;
呈现单元,用于在全部授权节点处理完毕后,将包含有根节点、授权节点和连接节点的权限树进行呈现。
这样,不仅能够实现生成的权限树界面简洁清晰、安全性好,而且能够在权限树上保留所有授权节点到根节点的完整路径,进一步能够清晰识别授权节点在基准树上的从属关系而无关的非授权节点不显示,使得权限树结构清晰。
可选的,将授权节点和连接节点加入权限树中时,所述处理单元用于:
将所述授权节点集合中的所有节点全部加入权限树中,授权节点集合中的一个节点生成为权限树中的一个授权节点,并对应当前生成的授权节点,记录所述授权节点的节点名称、节点标识ID、上级节点标识ID和授权标记;
将一个非授权节点作为连接节点加入权限树中,所述处理单元用于:
将所述一个非授权节点生成为权限树中的一个连接节点,并对应当前生成的连接节点,记录所述连接节点的节点名称、节点标识ID,上级节点标识ID和非授权标记。
这样权限树呈现时通过节点标识ID和上级节点标识ID的关联关系确定权限树每条分支的路径,提高权限树的生成效率,能够保证各节点在权限树上的从属关系更加准确。
可选的,所述处理单元进一步用于:
在第一次读取到根节点时,记录所述根节点的节点名称、节点标识ID、上级节点标识ID和授权标记或非授权标记,其中,所述上级节点标识ID的取值为用于表征当前节点为根节点的设定值,一个权限树中存在且仅存在一个根节点,根节点为授权节点或者为连接节点。
可选的,将包含有根节点、授权节点和连接节点的权限树进行呈现时,所述呈现单元用于:
若当前节点为授权节点,则在呈现过程中,提示用户对当前节点具有操作权限;
若当前节点为连接节点,则在呈现过程中,提示用户对当前节点不具有操作权限。
可选的,所述呈现单元进一步用于:
呈现所述权限树后,在接收到用户针对所述权限树中一个节点对应的内容的请求时,判断所述一个节点的类型;
若所述一个节点为授权节点,则直接打开所述一个节点对应的内容;
若所述一个节点为连接节点,则禁止打开所述一个节点对应的内容。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中权限树生成方法的流程示意图;
图2为本发明实施例中基于数据库的权限树生成方法的详细流程示意图;
图3为本发明实施例中新闻图片分类示意图;
图4为本发明实施例一中基于数据库的权限树生成方法的详细流程示意图;
图5为本发明实施例一生成的权限树的展现图;
图6A和图6B为本发明实施例二中基于数据库的权限树生成方法的详细流程示意图;
图7为本发明实施例二生成的权限树的展现图;
图8为本发明实施例三生成的权限树的展现图;
图9为本发明实施例中权限树生成装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种权限树的生成方法,通过该方法不仅能够实现权限树界面简洁清晰、安全性好的优点,而且能够在权限树上保留所有授权节点到根节点的完整路径,而无关的非授权节点不显示,使得权限树结构清晰。
参阅图1所示,本发明实施例中提供一种权限树的生成方法,具体流程如下:
步骤101:获取用户的授权节点集合。
授权节点集合中包含用户所有的授权状态的节点。
步骤102:将授权节点集合中的所有节点加入权限树中,并采用第一标识对加入权限树的节点进行授权标记;然后依次从上述授权节点集合中读取每一个授权节点,并判断当前读取的授权节点的上级节点是否归属于权限树;若是,说明权限树已经存在所述上级节点;否则,将该上级节点作为连接节点加入权限树中,并采用第二标识进行非授权标记,以及继续处理该上级节点的上级节点执行相同操作,直至根节点。
这里,采用第一标识进行授权标记的节点,代表用户对该节点对应的内容具有访问权限,可以将该节点的授权标记置为1,采用第二标识进行授权标记的节点,代表用户对该节点对应的内容无访问权限,可以将该节点的授权标记置为0。
具体的,将授权节点集合中的所有节点加入权限树中,是指将授权节点集合中的一个节点生成为权限树中的一个授权节点,并对应生成的授权节点,记录该授权节点的节点名称、节点标识ID、上级节点标识ID和授权标记;将一个非授权节点作为连接节点加入权限树中,是指将该非授权节点生成为权限树中的一个连接节点,并对应当前生成的连接节点,记录该连接节点的节点名称、节点标识ID,上级节点标识ID和非授权标记。
进一步的,基准树和生成的权限树中存在且仅存在一个根节点,根节点为授权节点或者为连接节点。
由于每个节点的结构完全相同,而且都携带有自身的节点标识ID和上级节点的节点标识ID,这样权限树呈现时通过节点标识ID和上级节点标识ID的关联关系确定权限树每条分支的路径。
步骤103:待全部授权节点处理完毕后,将包含有根节点、授权节点和连接节点的权限树进行呈现。
具体的,将包含有根节点、授权节点和连接节点的权限树进行呈现时,包括下列情形:
第一种情形为:若当前节点为授权节点,则在呈现过程中,提示用户对当前节点具有操作权限。
第二种情形为:若当前节点为连接节点,则在呈现过程中,提示用户对当前节点不具有操作权限。
例如,若当前节点为授权节点,表示针对该节点具有访问权限,显示时将其名称显示为带下划线,提示用户对当前节点具有操作权限;若当前节点为连接节点,表示针对该节点无访问权限,显示时将其名称显示为不带下划线,提示用户对当前节点不具有操作权限。
进一步的,呈现权限树后,在接收到用户针对该权限树中一个节点对应的内容的请求时,判断该一个节点的类型,包括下列情形:
第一种情形为:若该一个节点为授权节点,则直接打开该一个节点对应的内容;
第二种情形为:若该一个节点为连接节点,则禁止打开该一个节点对应的内容。
例如,用户王某登录应用系统,获取到用户王某的权限树后,从权限树发现只有节点名称为“田径”的节点显示为带下划线,其余节点名称都不带下划线,王某试图点击查看权限树中节点名称为“田径”的内容时,这时可以直接打开“田径”所对应的具体内容,而王某试图点击查看权限树中节点名称为“新闻”的内容时,这时禁止访问“新闻”所对应的内容。
通过上述方法生成的权限树,能够实现在权限树上保留从授权节点到根节点的完整路径,而且在生成的权限树中能够清晰识别授权节点在基准树上的从属关系,节点之间的从属关系在权限树上和基准树上能够保持一致。
参阅图2所示,本发明实施例中基于数据库的权限树生成方法的详细流程如下,包括以下步骤:
步骤S201:创建一个空的数组作为权限树数组,用于存放权限树的所有节点元素;
步骤S202:从权限表获取当前登录用户的所有授权节点得到授权节点集,将授权节点的授权标记置为1;
步骤S203:判断所述授权节点集是否为空,如果所述授权节点集为空,说明当前登录用户对任何节点都没有访问权限,执行步骤S213,否则执行步骤S204;
步骤S204:将授权节点集中的所有元素作为初始值加入权限树数组;
步骤S205:从授权节点集读取第一个节点作为当前处理节点;
步骤S206:从数据库的基准树数据存储表中获取当前处理节点的上级节点;
步骤S207:判断步骤S206获取到的当前处理节点的上级节点是否为空,如果当前处理节点的上级节点为空表示当前处理节点为根节点,则执行步骤S211,否则执行步骤S208;
步骤S208:判断步骤S206获取到的当前处理节点的上级节点是否已经在权限树数组中,如果已经在权限树数组中,则执行步骤S210,否则执行步骤S209;
步骤S209:将当前处理节点的上级节点的授权标记置为0,将其作为连接节点置入权限树数组中,接着执行步骤S210;
步骤S210:将当前处理节点的上级节点作为当前处理节点;接着执行步骤S206;
步骤S211:判断授权节点集中是否存在下一个未处理的授权节点,如果存在下一个未处理的授权节点,则执行步骤S212,否则执行步骤S213;
步骤S212:从授权节点集取下一个未处理的节点作为当前处理节点,然后:执行步骤S206;
步骤S213:将权限树数组展现在用户操作界面的树形视图,展现时将授权节点的名称显示为带下划线,表示可以打开授权节点查看相应图片分类的图片或进行其他操作;将连接节点的名称显示为不带下划线,表示不具有相应图片分类的访问权限,其在权限树上的显示仅为了表达授权节点的完整路径;
步骤S214:结束流程。
本发明实施例1、实施例2和实施例3中以新闻图片管理系统为例进行上述流程的说明,报社、图片社以及新闻网站会采集到大量的新闻图片,为方便管理通常会采用树形结构对这些图片进行分类,在数据库中保存图片分类的数据库表(基准树数据存储表)名为表(catalog),具体表结构信息如表1所示:
表1
表列名 | 表列说明 | 类型 | 长度 | 允许为空 |
ID | 分类标识号 | int | 4 | 非空 |
ParentID | 上级分类标识号 | int | 4 | 非空 |
Name | 分类名称 | varchar | 30 | 非空 |
表1中采用整数数据类型作为图片分类的标识号,从0开始编号,根节点的标识号为0,根节点没有上级节点,将其上级分类标识号设为-1。
保存用户和图片分类之间授权关系的权限表结构如下,具体表结构信息如表2所示:
表2
表列名 | 表列说明 | 类型 | 长度 | 允许为空 |
usercode | 用户帐号 | varchar | 30 | 非空 |
ID | 分类标识号 | int | 4 | 非空 |
type | 授权类型 | int | 4 | 非空 |
权限表在用户帐号和图片分类标识号之间建立了关联关系,表示用户对图片分类具有访问权限,具体访问权限有查看图片、上载图片、修改图片、删除图片等等,保存在授权类型字段中,授权类型字段是个32位的整型字段。如果用户对某图片分类具有任何类型的访问权限,则授权系统在权限表中保存一条相应的记录,不同类型的访问权限保存在授权类型字段的相应二进制位中,有访问权限的置为1;无访问权限的置为0。这样用户和图片分类只需一条记录可以存储多种权限类型,方便保存和处理。如果用户对某图片分类不具有任何访问权限,则授权系统不会在权限表保存用户帐号和图片分类对应的记录。本发明实施例中主要是为了说明生成和展示权限树的过程,不是说明权限管理系统本身,因此在此不具体讲述授权类型的细节,只要用户对图片分类具有任何访问权限,权限表中的授权类型字段的值均设为1,也就是在权限表中存在用户和图片分类对应的表记录,则称该图片分类在权限树上对应的节点为某用户的授权节点。
本发明实施例1、实施例2和实施例3中新闻图片系统包含所有图片分类的基准树参阅图3所示,所有图片分类保存在数据库基准树存储表中,具体内容如表3所示:
表3
ID | ParentID | Name |
0 | -1 | 新闻图片 |
1 | 0 | 娱乐 |
2 | 0 | 体育 |
3 | 1 | 影视 |
4 | 1 | 综艺 |
5 | 2 | 球类 |
6 | 2 | 田径 |
实施例1
本发明实施例1提供一种权限树的生成方法,在本发明实施例中用户Tom只对基准树上名为体育的一个节点具有访问权限,其在权限表的数据如表4所示:
表4
Usercode | ID | Type |
Tom | 2 | 1 |
根据本发明实施例一种权限树的生成方法的详细流程示意图,参阅图4所示,假设名为Tom的用户登录系统,获取Tom用户权限树的处理过程如下:步骤S401:创建一个空的数组作为权限树数组,此时权限树数组不包含任何节点元素。
步骤S402:从权限表获取用户所有授权节点得到授权节点集,将授权节点的授权标记置为1。
本实施例执行下面的SQL语句获取Tom用户具有访问权限的节点,通过表关联获取授权节点的名称及其上级节点标识ID;
selectdistinctt1.ID,ParentID,NamefromCatalogt1,Perm_Catalogt2
wheret1.ID=t2.IDandt2.type!=0andusercode='Tom'
在实施例中Tom用户只对名为“体育”的一个节点具有访问权限。
步骤S403:通过步骤S402得到的授权节点集中有一个授权节点,不为空,执行步骤S404。
步骤S404:将通过步骤S402得到的授权节点集作为初始值加入权限树数组,此时权限树数组只有一个名为“体育”的节点。
步骤S405:从授权节点集取第一个节点作为当前处理节点,此处取名为“体育”的节点为当前处理节点。
步骤S406:从数据库的基准树数据存储表(表3)中获取名为“体育”的节点(ID为2)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=2)
在此得到的名为“体育”的节点的上级节点为“新闻图片”。
步骤S407:从步骤S406得知名为“体育”的节点存在名为“新闻图片”的上级节点,执行步骤S408。
步骤S408:判断名为“新闻图片”的节点是否已经在权限树数组中,此处名为“新闻图片”的节点不在权限树数组中,执行步骤S409。
步骤S409:将名为“新闻图片”的节点的授权标记置为0,将其作为连接节点加入权限树数组,此时权限树数组有两个元素,一个名为“体育”的授权节点,一个名为“新闻图片”的连接节点。
步骤S410:将名为“新闻图片”的节点作为当前处理节点,然后执行步骤S411。
步骤S411:从数据库的基准树数据存储表(表3中)获取名为“新闻图片”的节点(ID为0)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=0)
由于名为“新闻图片”的节点为根节点,其本身不存在上级节点,上述执行语句不会返回任何结果。
步骤S412:从步骤S411得知名为“新闻图片”的节点不存在上级节点,执行步骤S413。
步骤S413:此处授权节点集中已经不存在下一个未处理的节点,执行步骤S414。
步骤S414:将权限树数组展现在用户操作界面的树形视图。
步骤S415:结束流程。
本发明实施例1生成的权限树的展现图参阅图5所示。
实施例2
本发明实施例2提供一种权限树的生成方法,在本发明实施例中的情形是用户Tom只对基准树上的田径、球类两个叶子节点具有访问权限,在权限表的数据如表5所示:
表5
Usercode | ID | Type |
Tom | 5 | 1 |
Tom | 6 | 1 |
本发明实施例2提供一种权限树的生成方法的详细流程示意图,参阅图6A和图6B所示,假设名为Tom的用户登录系统,获取Tom用户权限树的处理过程如下:
步骤S601:创建一个空的数组作为权限树数组,此时权限树数组不包含任何节点元素。
步骤S602:从权限表获取用户所有授权节点得到授权节点集,将授权节点的授权标记置为1。执行下面的SQL语句获取Tom用户具有访问权限的节点,通过表关联获取授权节点的名称及其上级节点标识ID;
selectdistinctt1.ID,ParentID,NamefromCatalogt1,Perm_Catalogt2
wheret1.ID=t2.IDandt2.type!=0andusercode='Tom'
此实施例中Tom用户对名为“球类”和“田径”的两个节点具有访问权限。
步骤S603:步骤S602得到的授权节点集中有两个授权节点,不为空,执行步骤S604。
步骤S604:将通过步骤S602得到的授权节点集作为初始值加入权限树数组,此时权限树数组有名为“球类”和“田径”的两个节点。
步骤S605:从授权节点集取第一个节点作为当前处理节点,此处取名为“球类”的节点为当前处理节点。
步骤S606:从数据库的基准树数据存储表(表3)中获取名为“球类”的节点(ID为5)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=5)
在此得到的名为“球类”的节点的上级节点为“体育”。
步骤S607:从步骤S606得知名为“球类”的节点存在名为“体育”的上级节点,执行步骤S608。
步骤S608:判断名为“体育”的节点是否已经在权限树数组中,此处名为“体育”的节点不在权限树数组中,执行步骤S609。
步骤S609:将名为“体育”的节点的授权标记置为0,将其作为连接节点加入权限树数组,此时权限树数组有三个元素,名为“球类”和“田径”的两个授权节点,一个名为“体育”的连接节点。
步骤S610:将名为“体育”的节点作为当前处理节点,然后执行步骤S611。
步骤S611:从数据库的基准树数据存储表(表3)中获取名为“体育”的节点(ID为2)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=2)
在此得到的名为“体育”的节点的上级节点为“新闻图片”。
步骤S612:从步骤S611得知名为“体育”的节点存在名为“新闻图片”的上级节点,执行步骤S613。
步骤S613:判断名为“新闻图片”的节点是否已经在权限树数组中,此处名为“新闻图片”的节点不在权限树数组中,执行步骤S614。
步骤S614:将名为“新闻图片”的节点的授权标记置为0,将其作为连接节点加入权限树数组,此时权限树数组有4个元素,名为“球类”和“田径”的两个授权节点,名为“体育”和“新闻图片”的两个连接节点。
步骤S615:将名为“新闻图片”的节点作为当前处理节点,然后:执行步骤S616。
步骤S616:从数据库的基准树数据存储表(表3)中获取名为“新闻图片”的节点(ID为0)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=0)
由于名为“新闻图片”的节点为根节点,其本身不存在上级节点,上述执行语句不会返回任何结果。
步骤S617:从步骤S616得知名为“新闻图片”的节点不存在上级节点,执行步骤S618;
步骤S618:授权节点集还存在下一个未处理的节点“田径”。
步骤S619:从授权节点集取下一个节点“田径”作为当前处理节点,然后执行步骤S620。
步骤S620:从数据库的基准树数据存储表(表3)中获取名为“田径”的节点(ID为6)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=6)
在此得到的名为“田径”的节点的上级节点为“体育”。
步骤S621:从步骤S620得知名为“田径”的节点存在名为“体育”的上级节点,执行步骤S622。
步骤S622:判断名为“体育”的节点是否已经在权限树数组中,此处名为“体育”的节点已经在权限树数组中,执行步骤S623。
步骤S623:将名为“体育”的节点作为当前处理节点,然后执行步骤S624。
步骤S624:从数据库的基准树数据存储表Catalog表获取名为“体育”的节点(ID为2)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=2)
在此得到的名为“体育”的节点的上级节点为“新闻图片”。
步骤S625:从步骤S624得知名为“体育”的节点存在名为“新闻图片”的上级节点,执行步骤S626。
步骤S626:判断名为“新闻图片”的节点是否已经在权限树数组中,此处名为“新闻图片”的节点已经在权限树数组中,执行步骤S627。
步骤S627:将名为“新闻图片”的节点作为当前处理节点,然后执行步骤S628。
步骤S628:从数据库的基准树数据存储表Catalog表获取名为“新闻图片”的节点(ID为0)的上级节点,执行如下的SQL语句:
selectID,ParentID,NamefromCatalog
whereID=(selectParentIDfromCatalogwhereID=0)
由于名为“新闻图片”的节点为根节点,其本身不存在上级节点,上述执行语句不会返回任何结果。
步骤S629:从步骤S628得知名为“新闻图片”的节点不存在上级节点,执行步骤S630。
步骤S630:判断授权节点集已经不存在下一个未处理的节点,执行步骤S631。
步骤S631:将权限树数组展现在用户操作界面的树形视图。
步骤S632:结束流程。
本发明实施例2生成的权限树的展现图参阅图7所示。
实施例3
本发明实施例3提供一种权限树的生成方法,在本发明实施例中的情形是用户对基准树上的根节点新闻图片、娱乐、体育以及体育节点下的田径、球类节点都具有访问权限,在权限表的数据如表6所示:
表6
Usercode | ID | Type |
Tom | 0 | 1 |
Tom | 1 | 1 |
Tom | 2 | 1 |
Tom | 5 | 1 |
Tom | 6 | 1 |
本发明实施例3的处理过程和实施例1、实施例2的处理逻辑完全相同,在此不再赘述。
图8给出了本发明实施例3生成的权限树的展现图。
基于上述技术方案,参阅图9所示,本发明实施例中还提供一种权限树的生成装置,包括获取单元90,处理单元91,呈现单元92,其中:
获取单元90,用于获取用户的授权节点集合;
处理单元91,用于将授权节点集合中的所有节点加入权限树中,采用第一标识对加入权限树的节点进行授权标记后,依次从该授权节点集合中读取每一个授权节点,判断当前读取的授权节点的上级节点是否已经归属于权限树;若是,说明权限树已经存在该该上级节点;否则,将该上级节点作为连接节点加入权限树中,并采用第二标识进行非授权标记,以及继续处理该上级节点的上级节点执行相同操作,直至根节点;
呈现单元92,用于在全部授权节点处理完毕后,将包含有根节点、授权节点和连接节点的权限树进行呈现。
这样,不仅能够实现生成的权限树界面简洁清晰、安全性好,而且能够在权限树上保留所有授权节点到根节点的完整路径,进一步能够清晰识别授权节点在基准树上的从属关系而无关的非授权节点不显示,使得权限树结构清晰。
可选的,将授权节点和连接节点加入权限树中时,处理单元91用于:
将授权节点集合中的所有节点全部加入权限树中,授权节点集合中的一个节点生成为权限树中的一个授权节点,并对应当前生成的授权节点,记录该授权节点的节点名称、节点标识ID、上级节点标识ID和授权标记;
将一个非授权节点作为连接节点加入权限树中,处理单元91用于:
将该一个非授权节点生成为权限树中的一个连接节点,并对应当前生成的连接节点,记录该连接节点的节点名称、节点标识ID,上级节点标识ID和非授权标记。
这样权限树呈现时通过节点标识ID和上级节点标识ID的关联关系确定权限树每条分支的路径,提高权限树的生成效率,能够保证各节点在权限树上的从属关系更加准确。
可选的,处理单元91进一步用于:
在第一次读取到根节点时,记录根节点的节点名称、节点标识ID、上级节点标识ID和授权标记或非授权标记,其中,该上级节点标识ID的取值为用于表征当前节点为根节点的设定值,一个权限树中存在且仅存在一个根节点,根节点为授权节点或者为连接节点。
可选的,将包含有根节点、授权节点和连接节点的权限树进行呈现时,呈现单元92用于:
若当前节点为授权节点,则在呈现过程中,提示用户对当前节点具有操作权限;
若当前节点为连接节点,则在呈现过程中,提示用户对当前节点不具有操作权限。
可选的,该呈现单元92进一步用于:
呈现权限树后,在接收到用户针对该权限树中一个节点对应的内容的请求时,判断一个节点的类型;
若一个节点为授权节点,则直接打开该一个节点对应的内容;
若一个节点为连接节点,则禁止打开该一个节点对应的内容。
综上所述,本发明实施例中,获取用户的授权节点集合,将其加入权限树中,并采用第一标识对加入权限树的节点进行授权标记;然后依次从上述授权节点集合中读取每一个授权节点,并判断当前读取的授权节点的上级节点是否归属于权限树;若是,权限树已经存在所述上级节点;否则,将该上级节点作为连接节点加入权限树中,并采用第二标识进行非授权标记,继续处理该上级节点的上级节点执行相同操作,直至根节点;待全部授权节点处理完毕后,将包含有根节点、授权节点和连接节点的权限树进行呈现,这样生成的权限树能够保留从授权节点到根节点的完整路径,使得权限树界面简洁清晰、安全性好,而且能够清晰识别授权节点在基准树上的从属关系,而无关的非授权节点不显示,使得权限树结构清晰。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种权限树的生成方法,其特征在于,包括:
获取用户的授权节点集合;
将授权节点集合中的所有节点加入权限树中,采用第一标识对加入权限树的节点进行授权标记后,依次从所述授权节点集合中读取每一个授权节点,判断当前读取的授权节点的上级节点是否已经归属于权限树;若是,说明权限树已经存在所述上级节点;否则,将所述上级节点作为连接节点加入权限树中,并采用第二标识进行非授权标记,以及继续处理所述上级节点的上级节点执行相同操作,直至根节点;
待全部授权节点处理完毕后,将包含有根节点、授权节点和连接节点的权限树进行呈现。
2.如权利要求1所述的方法,其特征在于,将授权节点和连接节点加入权限树中,包括:
将所述授权节点集合中的所有节点全部加入权限树中,授权节点集合中的一个节点生成为权限树中的一个授权节点,并对应当前生成的授权节点,记录所述授权节点的节点名称、节点标识ID、上级节点标识ID和授权标记;
将一个非授权节点作为连接节点加入权限树中,包括:
将所述一个非授权节点生成为权限树中的一个连接节点,并对应当前生成的连接节点,记录所述连接节点的节点名称、节点标识ID,上级节点标识ID和非授权标记。
3.如权利要求1所述的方法,其特征在于,进一步包括:
在第一次读取到根节点时,记录所述根节点的节点名称、节点标识ID、上级节点标识ID和授权标记或非授权标记,其中,所述根节点的上级节点标识ID的取值为用于表征当前节点为根节点的设定值,一个权限树中存在且仅存在一个根节点,根节点为授权节点或者为连接节点。
4.如权利要求1所述的方法,其特征在于,将包含有根节点、授权节点和连接节点的权限树进行呈现,包括:
若当前节点为授权节点,则在呈现过程中,提示用户对当前节点具有操作权限;
若当前节点为连接节点,则在呈现过程中,提示用户对当前节点不具有操作权限。
5.如权利要求1、2或3所述的方法,其特征在于,进一步包括:
呈现所述权限树后,在接收到用户针对所述权限树中一个节点对应的内容的请求时,判断所述一个节点的类型;
若所述一个节点为授权节点,则直接打开所述一个节点对应的内容;
若所述一个节点为连接节点,则禁止打开所述一个节点对应的内容。
6.一种权限树的生成装置,其特征在于,包括:
获取单元,用于获取用户的授权节点集合;
处理单元,用于将授权节点集合中的所有节点加入权限树中,采用第一标识对加入权限树的节点进行授权标记后,依次从所述授权节点集合中读取每一个授权节点,判断当前读取的授权节点的上级节点是否已经归属于权限树;若是,说明权限树已经存在所述上级节点;否则,将所述上级节点作为连接节点加入权限树中,并采用第二标识进行非授权标记,以及继续处理所述上级节点的上级节点执行相同操作,直至根节点;
呈现单元,用于在全部授权节点处理完毕后,将包含有根节点、授权节点和连接节点的权限树进行呈现。
7.如权利要求6所述的装置,其特征在于,将授权节点和连接节点加入权限树中时,所述处理单元用于:
将所述授权节点集合中的所有节点全部加入权限树中,授权节点集合中的一个节点生成为权限树中的一个授权节点,并对应当前生成的授权节点,记录所述授权节点的节点名称、节点标识ID、上级节点标识ID和授权标记;
将一个非授权节点作为连接节点加入权限树中,所述处理单元用于:
将所述一个非授权节点生成为权限树中的一个连接节点,并对应当前生成的连接节点,记录所述连接节点的节点名称、节点标识ID,上级节点标识ID和非授权标记。
8.如权利要求6所述的装置,其特征在于,所述处理单元进一步用于:
在第一次读取到根节点时,记录所述根节点的节点名称、节点标识ID、上级节点标识ID和授权标记或非授权标记,其中,所述上级节点标识ID的取值为用于表征当前节点为根节点的设定值,一个权限树中存在且仅存在一个根节点,根节点为授权节点或者为连接节点。
9.如权利要求6所述的装置,其特征在于,将包含有根节点、授权节点和连接节点的权限树进行呈现时,所述呈现单元用于:
若当前节点为授权节点,则在呈现过程中,提示用户对当前节点具有操作权限;
若当前节点为连接节点,则在呈现过程中,提示用户对当前节点不具有操作权限。
10.如权利要求6、7或8所述的装置,其特征在于,所述呈现单元进一步用于:
呈现所述权限树后,在接收到用户针对所述权限树中一个节点对应的内容的请求时,判断所述一个节点的类型;
若所述一个节点为授权节点,则直接打开所述一个节点对应的内容;
若所述一个节点为连接节点,则禁止打开所述一个节点对应的内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658496.1A CN105677651A (zh) | 2014-11-18 | 2014-11-18 | 一种权限树的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410658496.1A CN105677651A (zh) | 2014-11-18 | 2014-11-18 | 一种权限树的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105677651A true CN105677651A (zh) | 2016-06-15 |
Family
ID=56944596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410658496.1A Pending CN105677651A (zh) | 2014-11-18 | 2014-11-18 | 一种权限树的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677651A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302483A (zh) * | 2016-08-19 | 2017-01-04 | 上海帜讯信息技术股份有限公司 | 分权管理方法及系统 |
CN107506416A (zh) * | 2017-08-15 | 2017-12-22 | 厦门天锐科技股份有限公司 | 一种基于边界的权限缓存最小化系统及方法 |
CN110569657A (zh) * | 2019-09-10 | 2019-12-13 | 北京字节跳动网络技术有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111027091A (zh) * | 2019-11-13 | 2020-04-17 | 北京字节跳动网络技术有限公司 | 一种管理权限的方法、装置、介质和电子设备 |
CN111259350A (zh) * | 2020-01-10 | 2020-06-09 | 中国银联股份有限公司 | 一种访问控制方法、装置及计算机可读存储介质 |
CN112632500A (zh) * | 2020-12-30 | 2021-04-09 | 绿盟科技集团股份有限公司 | 一种数据管理方法和电子设备 |
CN114912086A (zh) * | 2022-03-29 | 2022-08-16 | 广州超音速自动化科技股份有限公司 | 一种软件权限管理分配方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402652A (zh) * | 2010-09-16 | 2012-04-04 | 金蝶软件(中国)有限公司 | 一种权限控制的方法、系统及终端 |
CN102411575A (zh) * | 2010-09-21 | 2012-04-11 | 北京大学 | 一种网页显示方法、系统以及服务器 |
US20120185435A1 (en) * | 2011-01-14 | 2012-07-19 | Apple Inc. | Organizing versioning according to permissions |
-
2014
- 2014-11-18 CN CN201410658496.1A patent/CN105677651A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402652A (zh) * | 2010-09-16 | 2012-04-04 | 金蝶软件(中国)有限公司 | 一种权限控制的方法、系统及终端 |
CN102411575A (zh) * | 2010-09-21 | 2012-04-11 | 北京大学 | 一种网页显示方法、系统以及服务器 |
US20120185435A1 (en) * | 2011-01-14 | 2012-07-19 | Apple Inc. | Organizing versioning according to permissions |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106302483A (zh) * | 2016-08-19 | 2017-01-04 | 上海帜讯信息技术股份有限公司 | 分权管理方法及系统 |
CN106302483B (zh) * | 2016-08-19 | 2019-09-27 | 上海帜讯信息技术股份有限公司 | 分权管理方法及系统 |
CN107506416A (zh) * | 2017-08-15 | 2017-12-22 | 厦门天锐科技股份有限公司 | 一种基于边界的权限缓存最小化系统及方法 |
CN107506416B (zh) * | 2017-08-15 | 2020-04-14 | 厦门天锐科技股份有限公司 | 一种基于边界的权限缓存最小化方法 |
CN110569657A (zh) * | 2019-09-10 | 2019-12-13 | 北京字节跳动网络技术有限公司 | 一种数据访问方法、装置、设备及存储介质 |
CN111027091A (zh) * | 2019-11-13 | 2020-04-17 | 北京字节跳动网络技术有限公司 | 一种管理权限的方法、装置、介质和电子设备 |
CN111027091B (zh) * | 2019-11-13 | 2022-04-22 | 北京字节跳动网络技术有限公司 | 一种管理权限的方法、装置、介质和电子设备 |
CN111259350A (zh) * | 2020-01-10 | 2020-06-09 | 中国银联股份有限公司 | 一种访问控制方法、装置及计算机可读存储介质 |
CN112632500A (zh) * | 2020-12-30 | 2021-04-09 | 绿盟科技集团股份有限公司 | 一种数据管理方法和电子设备 |
CN114912086A (zh) * | 2022-03-29 | 2022-08-16 | 广州超音速自动化科技股份有限公司 | 一种软件权限管理分配方法及系统 |
CN114912086B (zh) * | 2022-03-29 | 2024-08-30 | 超音速人工智能科技股份有限公司 | 一种软件权限管理分配方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677651A (zh) | 一种权限树的生成方法及装置 | |
US11005850B2 (en) | Access control for database | |
CN108701194B (zh) | 掩蔽限制访问控制系统 | |
US20160092596A1 (en) | Database migration method and apparatus | |
US10423608B2 (en) | Dynamic directory of objects based on logical attributes | |
CN102224496A (zh) | 公共配置应用程序编程接口 | |
CN110022315A (zh) | 一种块链式账本中的权重管理方法、装置及设备 | |
CN104008441A (zh) | 一种自动提交版本库归档的任务管理系统及方法 | |
CN106843820A (zh) | 代码处理方法和装置 | |
CN102224765A (zh) | 创建跨技术的配置设置 | |
CN103455589A (zh) | 产品工厂模式下的产品数据迁移方法、装置及系统 | |
CN106776731A (zh) | 一种搜索实现方法、装置和系统 | |
KR20100040702A (ko) | 보안 토큰과 그 보안 토큰을 생성하고 복호화하는 시스템 및 방법 | |
Razani et al. | Coupled Coincidence Point Results for (ψ, α, β)‐Weak Contractions in Partially Ordered Metric Spaces | |
CN106469143A (zh) | 文档结构的估计 | |
US20170170958A1 (en) | Communication control device, communication control method, and computer program product | |
JP2015204061A (ja) | システムセキュリティ設計支援装置、システムセキュリティ設計支援方法、及びシステムセキュリティ設計支援プログラム | |
CN105426676A (zh) | 一种钻井数据处理方法和系统 | |
RU2020113119A (ru) | Способ обеспечения инструментального программного средства и системы обработки данных | |
CN111400269B (zh) | 一种ipfs文件处理方法、节点、介质和设备 | |
US20210382865A1 (en) | Secure model item tracking system | |
CN104125283B (zh) | 一种用于集群的消息队列接收方法及系统 | |
JP6716929B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN109165208A (zh) | 一种用于将数据加载到数据库中的方法及系统 | |
CN111400320B (zh) | 用于生成信息的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160615 |