本发明涉及权限管理技术领域,特别是涉及一种用户权限修改方法和系统。
背景技术:
在实际的管理系统中,系统具有用户角色和配置信息的分配。为了实现用户配置信息的修改,传统的做法将配置信息存于数据库中,从数据库中获取相应的配置信息进行相应修改。但是用户角色和配置信息的数据量一般不大,而数据库本身比较庞大,这样增加了数据库的开销和维护。
技术实现要素:
基于此,有必要针对传统做法增加了数据库开销和维护的问题,提供一种用户权限修改方法和系统。
为了实现上述目的,本发明技术方案的实施例为:
一种用户权限修改方法,包括以下步骤:
根据当前登入请求确定当前请求用户角色;
接收所述当前请求用户角色对应的待修改权限配置项;
根据以预设结构化文档格式存储的用户权限配置文件中各个用户权限配置片段的用户角色和权限配置项,以及所述当前请求用户角色,确定所述当前请求用户角色对应的目标用户权限配置片段的权限配置项;
根据所述待修改权限配置项修改所述目标用户权限配置片段的权限配置项。
一种用户权限修改系统,包括:
当前请求用户角色确定模块,用于根据当前登入请求确定当前请求用户角色;
待修改权限配置项接收模块,用于接收所述当前请求用户角色对应的待修改权限配置项;
权限配置项确定模块,用于根据以预设结构化文档格式存储的用户权限配置文件中各个用户权限配置片段的用户角色和权限配置项,以及所述当前请求用户角色,确定所述当前请求用户角色对应的目标用户权限配置片段的权限配置项;
用户权限修改模块,用于根据所述待修改权限配置项修改所述目标用户权限配置片段的权限配置项。
与现有技术相比,本发明的有益效果为:本发明用户权限修改方法和系统,首先根据当前登入请求确定当前请求用户角色;接收当前请求用户角色对应的待修改权限配置项;根据当前请求用户角色和以预设结构化文档格式存储的用户权限配置文件,确定当前请求用户角色对应的目标用户权限配置片段的权限配置项;根据上述待修改权限配置项修改目标用户权限配置片段的权限配置项。本发明由于用户权限配置文件以预设结构化文档格式存储,不需要将用户权限配置文件存储在数据库中,节省数据库的开销和维护,同时以预设结构化文档格式存储的用户权限配置文件存储不同用户角色,不同用户角色对应不同的配置信息,可以在用户权限配置文件中快速获取当前请求用户角色对应的配置信息,提高用户权限修改的速度。
附图说明
图1为一个实施例中用户权限修改方法流程图;
图2为基于图1所示方法一个具体示例中用户权限修改方法流程图;
图3为一个实施例中用户权限修改系统结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
一个实施例中用户权限修改方法,如图1所示,包括以下步骤:
步骤S101:根据当前登入请求确定当前请求用户角色;
这里,用户角色包括admin(管理员)、everyone(任何用户)、user(普通用户)等。
具体地,根据预存的登入请求与用户角色的对应关系,确定当前登入请求对应的当前请求用户角色。
步骤S102:接收所述当前请求用户角色对应的待修改权限配置项;
这里,用户输入需要修改的权限配置项,向后台发出修改配置的请求。
具体地,待修改权限配置项可采用可读性较强的JSON字典格式或xml文档格式。
步骤S103:根据以预设结构化文档格式存储的用户权限配置文件中各个用户权限配置片段的用户角色和权限配置项,以及所述当前请求用户角色,确定所述当前请求用户角色对应的目标用户权限配置片段的权限配置项;
这里,预设结构化文档格式根据实际需要设置,例如xml文档格式。
具体地,用户权限配置文件包括多个用户权限配置片段,每一个用户权限配置片段中包括用户角色和权限配置项,一个实施例中一个以xml文档格式存储的用户权限配置片段为:
<normal role='admin'>
<network>10.1.166</network>
<controllerserver>10.1.xx.xxx</controllerserver>
<delayon>60</delayon>
<delayoff>5</delayoff>
<authkey>1YO4r5w8TAAk</authkey>
<expiration>3600</expiration>
<rdpkey>sq7c2b2PtnbtqKLB</rdpkey>
</normal>
该实施例中用户角色为admin,权限配置项为<normal>和</normal>之间的各个配置项。
步骤S104:根据所述待修改权限配置项修改所述目标用户权限配置片段的权限配置项。
这里,首先在目标用户权限配置片段的权限配置项找到与待修改权限配置项对应的权限配置项;
判断找到的权限配置项与待修改权限配置项是否相同;
当判定不同时,根据待修改权限配置项修改找到的权限配置项。
从以上描述可知,本发明用户权限修改方法,由于用户权限配置文件以预设结构化文档格式存储,不需要将用户权限配置文件存储在数据库中,节省数据库的开销和维护,同时以预设结构化文档格式存储的用户权限配置文件存储不同用户角色,不同用户角色对应不同的配置信息,可以在用户权限配置文件中快速获取当前请求用户角色对应的配置信息,提高用户权限修改的速度。
此外,在一个具体示例中,确定所述当前请求用户角色对应的目标用户权限配置片段的权限配置项的方式包括:
根据各个所述用户权限配置片段的用户角色,在各个所述用户权限配置片段中获取与所述当前请求用户角色对应的目标用户权限配置片段;
根据各个所述用户权限配置片段的权限配置项,确定所述目标用户权限配置片段的权限配置项。
这里,将当前请求用户角色与上述用户权限配置文件中的各个用户权限配置片段中的用户角色进行匹配,当角色匹配通过后,获取与当前请求用户角色对应的目标用户权限配置片段;否则停止处理,返回空值或任何无实质内容的值。
具体地,获取与所述当前请求用户角色对应的目标用户权限配置片段的方式包括:
根据预存的用户角色与角色等级的对应关系,确定所述当前请求用户角色的角色等级和各个所述用户权限配置片段的用户角色的角色等级;
根据各个所述用户权限配置片段的用户角色的角色等级,在各个所述用户权限配置片段中获取与所述当前请求用户角色对应的目标用户权限配置片段,所述目标用户权限配置片段为小于和等于所述当前请求用户角色的角色等级的用户角色对应的用户权限配置片段。
这里,对预存的用户权限配置文件进行过滤获取当前请求用户角色对应的目标用户权限配置片段。
这里,在各个用户权限配置片段中获取小于和等于当前请求用户角色的角色等级的用户角色对应的目标用户权限配置片段,例如用户权限配置文件包括3个用户权限配置片段,第一个用户权限配置片段的用户角色为admin,第二个用户权限配置片段的用户角色为user,第三个用户权限配置片段的用户角色为everyone,其中admin对应的角色等级大于user对应的角色等级,user对应的角色等级大于everyone对应的角色等级,当前请求用户角色为user,则目标用户权限配置片段为用户角色user对应的用户权限配置片段和用户角色everyone对应的用户权限配置片段。
此外,在一个具体示例中,各个所述用户权限配置片段还包括操作属性;
所述方法还包括步骤:
根据各个所述用户权限配置片段的操作属性,确定所述目标用户权限配置片段的操作属性;
判断所述目标用户权限配置片段的操作属性是否为读写;
当判定所述目标用户权限配置片段的操作属性为读写时,进入根据所述待修改权限配置项修改所述目标用户权限配置片段的权限配置项的步骤。
具体地,当目标用户权限配置片段的操作属性为读写或者只读时,根据待修改权限配置项修改目标用户权限配置片段的权限配置项,否则,停止修改。
这里,权限配置项和操作属性挂钩,防止低权限的用户访问重要的配置信息,同时防止低权限的用户篡改重要的配置信息,使配置信息得到了更大自由度的可配置和保护,满足多用户/多租户的场景应用需要。
此外,在一个具体示例中,所述方法还包括步骤:
分别对所述待修改权限配置项和所述目标用户权限配置片段的权限配置项进行json格式化处理。
具体地,对目标用户权限配置片段的权限配置项进行json格式化处理的方式包括:
将目标用户权限配置片段解析为一种树状结构,即将目标用户权限配置片段解析为子节点,将目标用户权限配置片段包含的权限配置项解析为叶子节点;
对上述子节点进行迭代,确定上述子节点包含的各个叶子节点的关键字和值。
原本的结构化文件,被解析之后,会转化为json格式,基本格式为{“关键字”:“值”}的映射字典,最终形成可读性较强的值,方便后续处理。
同理,对待修改权限配置项进行json格式化处理。
此外,在一个具体示例中,所述方法还包括步骤:
检测所述待修改权限配置项的语法格式是否正确;
当检测所述待修改权限配置项的语法格式正确时,进入确定所述当前请求用户角色对应的目标用户权限配置片段的权限配置项的步骤。
具体的,根据预设语法格式检测待修改权限配置项的语法格式是否正确,预设语法格式根据以预设结构化文档格式存储的用户权限配置文件中各个用户权限配置片段的权限配置项确定。
当检测待修改权限配置项的语法格式正确时,确定当前请求用户角色对应的目标用户权限配置片段的权限配置项,否则,停止后续处理。
为了更好地理解上述方法,以下详细阐述一个本发明用户权限修改方法的应用实例。
如图2所示,可以包括以下步骤:
步骤S201:以xml文档格式存储用户权限配置文件,该用户权限配置文件中的各个用户权限配置片段包括用户角色、操作属性和权限配置项;
各类配置使用一对中括号进行标识,一个实施例中文档结构如下所示:
这里,上述实施例中用户权限配置文件中有两个用户权限配置片段normal和log,其中用户权限配置片段normal的用户角色role为admin,操作属性opt为r/w,权限配置项为<normal>和</normal>之间的各个配置项;用户权限配置片段log的用户角色role为everyone,操作属性opt为r,权限配置项为<log>和</log>之间的各个配置项。
具体地,用户角色包括admin(管理员)、everyone(任何用户)、user(普通用户)等。操作属性包括r/w(读/写)、r(只读)等。
步骤S202:接收客户端发送的当前登入请求,当前登入请求包括登入用户名和登入密码;
步骤S203:根据当前登入请求确定当前请求用户角色;
具体地,根据预存的用户名和密码与用户角色的对应关系,确定与上述登入用户名和上述登入密码对应的当前请求用户角色。
步骤S204:接收上述客户端发送的当前请求用户角色对应的待修改权限配置项;
这里,用户输入需要修改的权限配置项,向后台发出修改配置的请求。
具体地,待修改权限配置项可采用可读性较强的JSON字典格式或xml文档格式。
步骤S205:检测上述待修改权限配置项的语法格式是否正确;
具体的,根据预设语法格式检测待修改权限配置项的语法格式是否正确,预设语法格式根据以预设结构化文档格式存储的用户权限配置文件中各个用户权限配置片段的权限配置项确定。
步骤S206:当检测上述待修改权限配置项的语法格式正确时,根据预存的用户角色与角色等级的对应关系,确定当前请求用户角色的角色等级和上述用户权限配置文件中各个用户权限配置片段的用户角色的角色等级,否则,停止后续处理;
步骤S207:根据上述用户权限配置文件中各个用户权限配置片段的用户角色的角色等级,在各个用户权限配置片段中获取与当前请求用户角色对应的目标用户权限配置片段,目标用户权限配置片段为小于和等于当前请求用户角色的角色等级的用户角色对应的用户权限配置片段;
具体地,admin对应的角色等级大于user对应的角色等级,user对应的角色等级大于everyone对应的角色等级。
这里,当前请求用户角色为admin,则目标用户权限配置片段为用户角色admin对应的用户权限配置片段和用户角色everyone对应的用户权限配置片段。
步骤S208:根据上述用户权限配置文件中各个用户权限配置片段的权限配置项,确定目标用户权限配置片段的权限配置项;
步骤S209:根据上述用户权限配置文件中各个用户权限配置片段的操作属性,确定目标用户权限配置片段的操作属性;
步骤S210:判断目标用户权限配置片段的操作属性是否为读写;
步骤S211:当判定目标用户权限配置片段的操作属性为读写时,分别对上述待修改权限配置项和上述目标用户权限配置片段的权限配置项进行json格式化处理;
这里,权限配置项和操作属性挂钩,防止低权限的用户访问重要的配置信息,同时防止低权限的用户篡改重要的配置信息,使配置信息得到了更大自由度的可配置和保护,满足多用户/多租户的场景应用需要。
具体地,对目标用户权限配置片段的权限配置项进行json格式化处理的方式包括:
将目标用户权限配置片段解析为一种树状结构,即将目标用户权限配置片段解析为子节点,将目标用户权限配置片段包含的权限配置项解析为叶子节点;
对上述子节点进行迭代,确定上述子节点包含的各个叶子节点的关键字和值。
原本的结构化文件,被解析之后,会转化为json格式,基本格式为{“关键字”:“值”}的映射字典,最终形成可读性较强的值,方便后续处理。
同理,对待修改权限配置项进行json格式化处理。
这里,或者分别对上述以xml文档格式存储用户权限配置文件和待修改权限配置项进行json格式化处理;
具体地,对以xml文档格式存储用户权限配置文件进行json格式化处理的方式包括:
把上述以xml文档格式存储用户权限配置文件按行读入,拼接为一个大型的字符串变量;
配置文件被转化为字符串后,字符串中首尾的中括号标识’<config>与</config>’,表明文件的始末,此为完整的配置信息。
然后将上述用户权限配置文件解析为一种树状结构,将用户权限配置文件中的各个用户权限配置片段解析为子节点,将用户权限配置片段包含的权限配置项解析为叶子节点,对各个子节点进行迭代,确定各个子节点包含的各个叶子节点的关键字和值;
具体地,以上述步骤S201中的文档结构实施例为例,解析得到根节点config,派生出两个子节点normal和log,normal和log又分别派生出若干的子节点,分别对不同的子节点进行迭代,最终获取每个叶子节点的值,原本的结构化文件,被解析之后,会转化为json格式,基本格式为{“关键字”:“值”}的映射字典,最终形成可读性较强的值,方便后续处理。
这里,两个子节点normal和log均包括用户角色、操作属性和权限配置项。
步骤S212:在上述目标用户权限配置片段的权限配置项找到与待修改权限配置项对应的权限配置项;
具体的,待修改权限配置项包括{“关键字”:“值”},在上述目标用户权限配置片段的权限配置项找到与待修改权限配置项的关键字相同的权限配置项,该权限配置项包括{“关键字”:“值”};
步骤S213:根据待修改权限配置项的值修改步骤S212找到的权限配置项的值。
这里,判断待修改权限配置项的值与步骤S212找到的权限配置项的值是否相同;
当判定不同时,将步骤S212找到的权限配置项的值修改为待修改权限配置项的值。
例如待修改权限配置项的值为20,步骤S212找到的权限配置项的值为10,将步骤S212找到的权限配置项的值修改为20。
从以上描述可知,本实施例以xml文档格式存储用户权限配置文件,在接收到当前登入请求后,根据当前登入请求确定当前请求用户角色,接收当前请求用户角色输入的待修改权限配置项,检测上述待修改权限配置项的语法格式是否正确,当检测正确时,根据用户权限配置文件中各个用户权限配置片段的用户角色,获取与当前请求用户角色匹配的目标用户角色对应的目标用户权限配置片段,进一步确定目标用户权限配置片段的权限配置项和操作属性,当目标用户权限配置片段的操作属性为读写时,分别对上述待修改权限配置项和上述目标用户权限配置片段的权限配置项进行json格式化处理,在上述目标用户权限配置片段的权限配置项找到与待修改权限配置项对应的权限配置项,根据待修改权限配置项修改找到的权限配置项。本实施例由于用户权限配置文件以xml文档格式存储,不需要将用户权限配置文件存储在数据库中,节省数据库的开销和维护;以xml文档格式存储的用户权限配置文件存储不同用户角色,不同用户角色对应不同的配置信息,可以在用户权限配置文件中快速获取当前请求用户角色对应的配置信息,提高用户权限修改的速度;权限配置项和操作属性挂钩,防止低权限的用户访问重要的配置信息,同时防止低权限的用户篡改重要的配置信息,使配置信息得到了更大自由度的可配置和保护,满足多用户/多租户的场景应用需要。
一个实施例中用户权限修改系统,如图3所示,包括:
当前请求用户角色确定模块301,用于根据当前登入请求确定当前请求用户角色;
待修改权限配置项接收模块302,用于接收所述当前请求用户角色对应的待修改权限配置项;
权限配置项确定模块303,用于根据以预设结构化文档格式存储的用户权限配置文件中各个用户权限配置片段的用户角色和权限配置项,以及所述当前请求用户角色,确定所述当前请求用户角色对应的目标用户权限配置片段的权限配置项;
用户权限修改模块304,用于根据所述待修改权限配置项修改所述目标用户权限配置片段的权限配置项。
如图3所示,在一个具体实施例中,所述权限配置项确定模块303包括:
目标用户权限配置片段获取单元3031,用于根据各个所述用户权限配置片段的用户角色,在各个所述用户权限配置片段中获取与所述当前请求用户角色对应的目标用户权限配置片段;
权限配置项确定单元3032,用于根据各个所述用户权限配置片段的权限配置项,确定所述目标用户权限配置片段的权限配置项。
此外,在一个具体示例中,各个所述用户权限配置片段还包括操作属性;
如图3所示,在一个具体实施例中,所述系统还包括:
操作属性确定模块305,用于根据各个所述用户权限配置片段的操作属性,确定所述目标用户权限配置片段的操作属性;
操作属性判断模块306,用于判断所述目标用户权限配置片段的操作属性是否为读写;
当所述操作属性判断模块306判定所述目标用户权限配置片段的操作属性为读写时,所述用户权限修改模块304根据所述待修改权限配置项修改所述目标用户权限配置片段的权限配置项。
如图3所示,在一个具体实施例中,所述系统还包括:
json格式化模块307,用于分别对所述待修改权限配置项和所述目标用户权限配置片段的权限配置项进行json格式化处理。
如图3所示,在一个具体实施例中,所述系统还包括:
语法格式检测模块308,用于检测所述待修改权限配置项的语法格式是否正确;
当所述语法格式检测模块308检测所述待修改权限配置项的语法格式正确时,所述权限配置项确定模块303根据以预设结构化文档格式存储的用户权限配置文件中各个用户权限配置片段的用户角色和权限配置项,以及所述当前请求用户角色,确定所述当前请求用户角色对应的目标用户权限配置片段的权限配置项。
从以上描述可知,本发明用户权限修改系统,由于用户权限配置文件以预设结构化文档格式存储,不需要将用户权限配置文件存储在数据库中,节省数据库的开销和维护,同时以预设结构化文档格式存储的用户权限配置文件存储不同用户角色,不同用户角色对应不同的配置信息,可以在用户权限配置文件中快速获取当前请求用户角色对应的配置信息,提高用户权限修改的速度。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。