权限控制方法及装置制造方法及图纸

技术编号:7917840 阅读:165 留言:0更新日期:2012-10-25 02:52
本发明专利技术公开了一种权限控制方法及装置,该方法包括:获取当前用户的权限;根据获取到的权限以及与所有权限一一对应的操作的属性值控制当前用户是否可以执行该操作。本发明专利技术中,通过当前用户的权限以及该用户所要执行的与所有权限一一对应的操作的某个属性值,控制用户是否可以执行该操作(即当前用户要执行的操作所对应的权限是否是在该用户的权限范围内),相对于相关技术中数据按位存储,根据按位运算来确定用户权限的方案,上述方法易于实现。

【技术实现步骤摘要】

本专利技术涉及通信领域,具体而言,涉及一种权限控制方法及装置
技术介绍
在设计通信业务软件时,考虑到数据的安全性与完整性,必须为通信业务软件设计权限管理方案,以便对不同的用户分配不同的权限,使得不同的用户各自在独立的权限下使用通信业务软件,以确保数据的完整和安全。相关技术中,权限控制方案将“模块+子功能”定义为一个可授权的功能对象,这种将模块和子功能糅合在一起的定义方式,导致逻辑上不够清晰。另外,相关技术中模块和 子功能分别用一个四字节的整数的高16位和低16为表示,这样模块标识和子功能标识总数受限制,并且这种按位的数据处理方式的实现比较复杂;其次,采用(功能对象ID,角色,用户ID,权限控制字)作为一条行记录值插入文件或数据中的方法来形成角色功能映射表,这种方法保存的权限数据存在信息冗余,不符合关系数据库设计规范。因此,相关技术中的权限控制方案实现起来较复杂。
技术实现思路
本专利技术提供了一种权限控制方法及装置,以至少解决相关技术中,权限控制方案实现较复杂的问题。根据本专利技术的一个方面,提供了一种权限控制方法,包括获取当前用户的权限;根据获取到的权限以及与所有权限一一对应的操作的属性值控制当前用户是否可以执行该操作。优选地,在获取当前用户的权限之前,上述方法还包括将所有权限的标识值赋给与所有权限对应的操作的属性值。优选地,根据获取到的权限以及与所有权限一一对应的操作的属性值控制当前用户是否可以执行该操作包括判断与所有权限一一对应的操作的属性值是否在获取到的权限的标识值的集合中;如果判断结果为是,则允许当前用户执行上述操作;如果判断结果为否,则拒绝当前用户执行上述操作。优选地,在获取当前用户的权限之前,上述方法还包括将所有用户、所有权限、用户与权限之间的对应关系保存到数据库中;获取当前用户的权限包括在用户与权限之间的对应关系中获取与当前用户对应的权限。优选地,在获取当前用户的权限之前,上述方法还包括将所有用户、所有角色、所有权限、用户与角色之间的对应关系、角色与权限之间的对应关系保存到数据库中,其中,角色是一个或多个权限的集合;获取当前用户的权限包括在用户与角色之间的对应关系中获取与当前用户对应的角色;在角色与权限之间的对应关系中获取与当前用户的角色对应的权限。优选地,上述权限控制方法通过程序开发工具Delphi实现。优选地,操作的属性值是Delphi中Action对象的整型类型的Tag属性值。根据本专利技术的另一方面,提供了一种权限控制装置,包括获取模块,用于获取当前用户的权限;控制模块,用于根据获取到的权限以及与所有权限一一对应的操作的属性值控制当前用户是否可以执行该操作。优选地,上述装置还包括赋值模块,用于将所有权限的标识值赋给与所有权限对应的操作的属性值。优选地,控制模块包括判断单元,用于判断与所有权限一一对应的操作的属性值是否在获取到的权限的标识值的集合中;第一处理单元,用于在判断结果为是的情况下,允许当前用户执行上述操作;第二处理单元,用于在判断结果为否的情况下,拒绝当前用户执行上述操作。优选地,上述装置还包括第一保存模块,用于将所有用户、所有权限、用户与权限之间的对应关系保存到数据库中;获取模块包括第一获取单元,用于在用户与权限之间 的对应关系中获取与当前用户对应的权限。优选地,上述装置还包括第二保存模块,用于将所有用户、所有角色、所有权限、用户与角色之间的对应关系、角色与权限之间的对应关系保存到数据库中,其中,角色是一个或多个权限的集合;获取模块包括第二获取单元,用于在用户与角色之间的对应关系中获取与当前用户对应的角色;第三获取单元,用于在角色与权限之间的对应关系中获取与当前用户的角色对应的权限。本专利技术实施例中,通过当前用户的权限以及该用户所要执行的与所有权限一一对应的操作的某个属性值,控制用户是否可以执行该操作(即当前用户所要执行的操作所对应的权限是否在该用户的权限范围内),相对于现有技术中数据按位存储,根据按位运算来确定用户权限的方案,上述方法易于实现。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中图I是根据本专利技术实施例的权限控制方法的流程图;图2是根据本专利技术优选实施例的权限分配示意图;图3是根据本专利技术优选实施例的Action对象的相关事件的触发顺序图;图4是根据本专利技术实施例的权限控制装置的结构框图;图5是根据本专利技术优选实施例的权限控制装置的结构框图一;图6是根据本专利技术优选实施例的权限控制装置的结构框图二 ;图7是根据本专利技术优选实施例的权限控制装置的结构框图三。具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本专利技术。相关技术中,通信业务软件中的权限控制方案实现较复杂。为此,本专利技术实施例提供了一种权限控制方法,使得通信业务软件中的权限控制易于实现,图I是根据本专利技术实施例的权限控制方法的流程图,如图I所示,包括如下的步骤S102至步骤S104。步骤S102,获取当前用户的权限。步骤S104,根据获取到的权限以及与所有权限一一对应的操作的属性值控制当前用户是否可以执行该操作。上述实施例中,根据当前用户的权限以及该用户所要执行的操作的属性值,控制用户是否可以执行该操作(即当前用户所要执行的操作是否是该用户的权限对应的操作),相对于相关技术中数据按位存储,根据按位运算来确定用户权限的方案,上述方法易于实现。优选地,上述权限控制方法通过程序开发工具Delphi实现,操作的属性值是Delphi中Action对象的整型类型的Tag属性值,这样编程较简单,从而可以较容易地实现用户的权限控制,使得具有不同权限的用户仅能使用特定的系统功能。 在最初权限分配时,需要将所有权限的标识值赋给与所有权限对应的操作的属性值,以便后续根据某个操作的属性值判断当前用户是否可以执行该操作。具体地,在获取当前用户的权限之前,上述方法还包括将所有权限的标识值赋给与所有权限对应的操作的属性值。优选地,根据获取到的权限以及与所有权限一一对应的操作的属性值控制当前用户是否可以执行该操作包括判断与所有权限一一对应的操作的属性值是否在获取到的权限的标识值的集合中;如果判断结果为是,则允许当前用户执行上述操作;如果判断结果为否,则拒绝当前用户执行上述操作。通过简单的判断步骤即可确定用户是否可以执行某个操作,简单易实现。在本专利技术实施例的一个优选实施方式中,将权限数据和用户数据抽象成表格的形式进行存储,符合关系数据库设计规范。具体如下,在获取当前用户的权限之前,上述方法还包括将所有用户、所有权限、用户与权限之间的对应关系保存到数据库中;获取当前用户的权限包括在用户与权限之间的对应关系中获取与当前用户对应的权限。针对相关技术中利用四个字节存储权限数据和用户数据,权限数量受限的问题,在另外一个优选实施方式中,增加了角色的概念,即一组权限的集合,将权限分组,且按照表格方式存储,使得逻辑清晰,对系统的权限数量也没有限制,具有良好的可扩展性。具体操作如下在获取当前用户的权限之前,上述方法还包括将所有用户、所有角色、所有权限、用户与角色之间的对应关系、角色与权限之本文档来自技高网...

【技术保护点】
一种权限控制方法,其特征在于包括:获取当前用户的权限;根据所述获取到的权限以及与所有权限一一对应的操作的属性值控制所述当前用户是否可以执行所述操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:尹平
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1