一种权限树的生成方法及装置的制造方法_3

文档序号:9911018阅读:来源:国知局
r>[0098] 表1中采用整数数据类型作为图片分类的标识号,从0开始编号,根节点的标识号 为〇,根节点没有上级节点,将其上级分类标识号设为-1。
[0099] 保存用户和图片分类之间授权关系的权限表结构如下,具体表结构信息如表2所 示:
[0100] 表 2
[0101]
[0102] 权限表在用户帐号和图片分类标识号之间建立了关联关系,表示用户对图片分类 具有访问权限,具体访问权限有查看图片、上载图片、修改图片、删除图片等等,保存在授权 类型字段中,授权类型字段是个32位的整型字段。如果用户对某图片分类具有任何类型的 访问权限,则授权系统在权限表中保存一条相应的记录,不同类型的访问权限保存在授权 类型字段的相应二进制位中,有访问权限的置为1 ;无访问权限的置为0。这样用户和图片 分类只需一条记录可以存储多种权限类型,方便保存和处理。如果用户对某图片分类不具 有任何访问权限,则授权系统不会在权限表保存用户帐号和图片分类对应的记录。本发明 实施例中主要是为了说明生成和展示权限树的过程,不是说明权限管理系统本身,因此在 此不具体讲述授权类型的细节,只要用户对图片分类具有任何访问权限,权限表中的授权 类型字段的值均设为1,也就是在权限表中存在用户和图片分类对应的表记录,则称该图片 分类在权限树上对应的节点为某用户的授权节点。
[0103] 本发明实施例1、实施例2和实施例3中新闻图片系统包含所有图片分类的基准树 参阅图3所示,所有图片分类保存在数据库基准树存储表中,具体内容如表3所示:
[0104] 表 3
[0105]
[0106] 实施例1
[0107] 本发明实施例1提供一种权限树的生成方法,在本发明实施例中用户Tom只对基 准树上名为体育的一个节点具有访问权限,其在权限表的数据如表4所示:
[0108] 表 4
[0109]
[0110] 根据本发明实施例一种权限树的生成方法的详细流程示意图,参阅图4所示,假 设名为Tom的用户登录系统,获取Tom用户权限树的处理过程如下:步骤S401 :创建一个空 的数组作为权限树数组,此时权限树数组不包含任何节点元素。
[0111] 步骤S402 :从权限表获取用户所有授权节点得到授权节点集,将授权节点的授权 标记置为1。
[0112] 本实施例执行下面的SQL语句获取Tom用户具有访问权限的节点,通过表关联获 取授权节点的名称及其上级节点标识ID ;
[0113] select distinct tl. ID, ParentID, Name from Catalog tl, Perm_Catalog t2
[0114] where tl. ID = t2. ID and t2. type ! = Oand usercode = ' Tom'
[0115] 在实施例中Tom用户只对名为"体育"的一个节点具有访问权限。
[0116] 步骤S403 :通过步骤S402得到的授权节点集中有一个授权节点,不为空,执行步 骤 S404。
[0117] 步骤S404 :将通过步骤S402得到的授权节点集作为初始值加入权限树数组,此时 权限树数组只有一个名为"体育"的节点。
[0118] 步骤S405 :从授权节点集取第一个节点作为当前处理节点,此处取名为"体育"的 节点为当前处理节点。
[0119] 步骤S406 :从数据库的基准树数据存储表(表3)中获取名为"体育"的节点(ID 为2)的上级节点,执行如下的SQL语句:
[0120] select ID, ParentID, Name from Catalog
[0121] where ID = (select ParentID from Catalog where ID = 2)
[0122] 在此得到的名为"体育"的节点的上级节点为"新闻图片"。
[0123] 步骤S407 :从步骤S406得知名为"体育"的节点存在名为"新闻图片"的上级节 点,执行步骤S408。
[0124] 步骤S408 :判断名为"新闻图片"的节点是否已经在权限树数组中,此处名为"新 闻图片"的节点不在权限树数组中,执行步骤S409。
[0125] 步骤S409 :将名为"新闻图片"的节点的授权标记置为0,将其作为连接节点加入 权限树数组,此时权限树数组有两个元素,一个名为"体育"的授权节点,一个名为"新闻图 片"的连接节点。
[0126] 步骤S410 :将名为"新闻图片"的节点作为当前处理节点,然后执行步骤S411。
[0127] 步骤S411 :从数据库的基准树数据存储表(表3中)获取名为"新闻图片"的节点 (ID为0)的上级节点,执行如下的SQL语句:
[0128] select ID, ParentID, Name from Catalog
[0129] where ID = (select ParentID from Catalog where ID = 0)
[0130] 由于名为"新闻图片"的节点为根节点,其本身不存在上级节点,上述执行语句不 会返回任何结果。
[0131] 步骤S412 :从步骤S411得知名为"新闻图片"的节点不存在上级节点,执行步骤 S413〇
[0132] 步骤S413 :此处授权节点集中已经不存在下一个未处理的节点,执行步骤S414。
[0133] 步骤S414 :将权限树数组展现在用户操作界面的树形视图。
[0134] 步骤S415:结束流程。
[0135] 本发明实施例1生成的权限树的展现图参阅图5所示。
[0136] 实施例2
[0137] 本发明实施例2提供一种权限树的生成方法,在本发明实施例中的情形是用户 Tom只对基准树上的田径、球类两个叶子节点具有访问权限,在权限表的数据如表5所示:
[0138] 表 5
[0139]
[0140]
[0141] 本发明实施例2提供一种权限树的生成方法的详细流程示意图,参阅图6A和图6B 所示,假设名为Tom的用户登录系统,获取Tom用户权限树的处理过程如下:
[0142] 步骤S601 :创建一个空的数组作为权限树数组,此时权限树数组不包含任何节点 元素。
[0143] 步骤S602 :从权限表获取用户所有授权节点得到授权节点集,将授权节点的授权 标记置为1。执行下面的SQL语句获取Tom用户具有访问权限的节点,通过表关联获取授权 节点的名称及其上级节点标识ID ;
[0144] select distinct tl. ID, ParentID, Name from Catalog tl, Perm_Catalog t2
[0145] where tl. ID = t2. ID and t2. type ! = Oand usercode = ' Tom'
[0146] 此实施例中Tom用户对名为"球类"和"田径"的两个节点具有访问权限。
[0147] 步骤S603 :步骤S602得到的授权节点集中有两个授权节点,不为空,执行步骤 S604〇
[0148] 步骤S604 :将通过步骤S602得到的授权节点集作为初始值加入权限树数组,此时 权限树数组有名为"球类"和"田径"的两个节点。
[0149] 步骤S605 :从授权节点集取第一个节点作为当前处理节点,此处取名为"球类"的 节点为当前处理节点。
[0150] 步骤S606 :从数据库的基准树数据存储表(表3)中获取名为"球类"的节点(ID 为5)的上级节点,执行如下的SQL语句:
[0151] select ID, ParentID, Name from Catalog
[0152] where ID = (select ParentID from Catalog where ID = 5)
[0153] 在此得到的名为"球类"的节点的上级节点为"体育"。
[0154] 步骤S607 :从步骤S606得知名为"球类"的节点存在名为"体育"的上级节点,执 行步骤S608。
[0155] 步骤S608 :判断名为"体育"的节点是否已经在权限树数组中,此处名为"体育"的 节点不在权限树数组中,执行步骤S609。
[0156] 步骤S609 :将名为"体育"的节点的授权标记置为0,将其作为连接节点加入权限 树数组,此时权限树数组有三个元素,名为"球类"和"田径"的两个授权节点,一个名为"体 育"的连接节点。
[0157] 步骤S610 :将名为"体育"的节点
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1