一种用户权限管理方法及系统与流程

文档序号:11920164阅读:374来源:国知局

本发明涉及权限管理技术领域,尤其涉及一种用户权限管理方法及系统。



背景技术:

在一个大的总系统中往往有多个子系统,现有的权限管理方法及系统是给每个子系统单独设置功能模块和权限管理模块,单独对每个子系统进行权限管理,随着子系统的增多,管理员需要配置大量权限管理模块,极大地增加了工作量和资源配置的复杂度,权限管理也更为复杂,而且各个子系统中可能存在相同的功能模块,相同的功能模块重复配置额外占用了系统资源。



技术实现要素:

本发明的目的是克服现有权限管理方法及系统对总系统中的每个子系统单独进行权限管理,权限管理复杂不方便,占用系统资源较多的技术问题,提供了一种用户权限管理方法及系统,其对总系统中的各个子系统进行统一的权限管理,权限管理简便灵活,节省了系统资源,提升了用户体验。

为了解决上述问题,本发明采用以下技术方案予以实现:

本发明的一种用户权限管理方法,包括以下步骤:

S1:给包含若干个子系统的总系统添加若干个功能模块,并定义每个功能模块对应的功能权限值;

给每个子系统分配其可使用的功能模块,每个子系统可使用的功能模块的功能权限值构成该子系统的子系统权限值列表;

设定角色身份,给角色授予其在每个子系统中的权限;

设定用户身份,给用户分配角色或单独给用户授予其在每个子系统中的权限;

S2:当用户登录时,将用户单独被授予的权限和该用户被分配角色对应的权限合并,根据合并后的权限判断用户能否使用各个子系统被分配的功能模块。

在本技术方案中,给总系统配置一套功能模块,这些功能模块可应用于总系统内的各个子系统,功能模块统一管理,节省了系统资源。

管理员可根据需要给各个子系统分配其可使用的功能模块,当某个子系统被分配了一个可使用的功能模块时,该子系统的子系统权限值列表中就会添加该功能模块对应的功能权限值。在给角色授予其在某个子系统中的权限时,根据角色需要从该子系统的子系统权限值列表中挑选出允许角色在该子系统中拥有的功能权限值,将这些功能权限值与其所属的子系统标识绑定添加到角色权限中,这样就可以区分用户在不同子系统中拥有的相同的功能权限值。给用户授予其在某个子系统中的权限的方法和给角色授权的方法一样。

当用户登录总系统时,将用户单独被授予的权限和该用户被分配角色对应的权限进行合并处理,然后根据合并后的权限判断用户在各个子系统分别拥有哪些权限,当用户访问各个子系统时,根据用户在各个子系统的权限授予其是否有使用子系统内相应功能模块的权利。

作为优选,所述给角色授予其在每个子系统中的权限的方法包括以下步骤:给角色建立角色权限值列表,从每个子系统权限值列表中挑选出允许角色在对应子系统中拥有的功能权限值,并将从同一个子系统中挑选出的功能权限值整合成与该子系统对应的角色子系统权限值列表,将角色子系统权限值列表添加到该角色的角色权限值列表中。角色在每个子系统中拥有的权限为与该子系统对应的角色子系统权限值列表中的功能权限值。如:角色在订单子系统中拥有的权限记录在角色订单子系统权限值列表中,角色在调度子系统中拥有的权限记录在角色调度子系统权限值列表中。

作为优选,所述单独给用户授予其在每个子系统中的权限的方法包括以下步骤:给用户建立用户权限值列表,从每个子系统权限值列表中挑选出允许用户在对应子系统中拥有的功能权限值,并将从同一个子系统中挑选出的功能权限值整合成与该子系统对应的用户子系统权限值列表,将用户子系统权限值列表添加到该用户的用户权限值列表中。如:用户在订单子系统中拥有的权限记录在用户订单子系统权限值列表中,用户在调度子系统中拥有的权限记录在用户调度子系统权限值列表中。本方法可以对角色赋予权限,也可以直接对系统用户授权,增加了系统的灵活性。

作为优选,所述步骤S2包括以下步骤:当用户登录时,将用户权限值列表和该用户被分配角色对应的角色权限值列表合并成一个总权限值列表,根据总权限值列表判断用户能否使用各个子系统被分配的功能模块。

作为优选,所述功能权限值用二进制数值表示,二进制数值的每一位与一个功能模块对应,某一位为0表示没有该位对应的功能权限,某一位为1表示拥有该位对应的功能权限。如:四位的二进制数,从右往左,第一位与删除功能模块对应,第二位于修改功能模块对应,第三位与查询功能模块对应,第四位与添加功能模块对应,删除功能模块对应的功能权限值为0001,修改功能模块对应的功能权限值为0010,查询功能模块对应的功能权限值为0100,添加功能模块对应的功能权限值为1000。

作为优选,给角色授予其在某个子系统中的权限时,将允许角色在该子系统中拥有的所有功能权限值进行或运算,或运算得到的值就是角色在该子系统中的权限总值;单独给用户授予其在某个子系统中的权限时,将允许用户在该子系统中拥有的所有功能权限值进行或运算,或运算得到的值就是用户在该子系统中的权限总值。如:角色在某个子系统中的具有删除、查询、修改、添加的功能,这四个功能模块对应的功能权限值分别为0001、0010、0100、1000,对0001、0010、0100、1000进行或运算,得到1111,1111就是角色在该子系统中的权限总值。

作为优选,每个子系统被分配的功能模块在对应子系统的显示界面上都有相应的界面元素,当用户登录时,如果用户拥有使用某个子系统的某个功能模块的权限,则用户的该子系统显示界面上显示该功能模块对应的界面元素,如果用户没有使用某个子系统的某个功能模块的权限,则用户的该子系统显示界面上不显示该功能模块对应的界面元素。界面元素可以是按钮、菜单等,如:删除按钮、查询按钮、修改按钮、添加按钮、用户菜单列表等。

作为优选,每个用户被分配一个唯一的用户标识,每个角色被分配一个唯一的角色标识。

本发明的一种权限管理系统,用于上述的一种用户权限管理方法,包括:

接收模块,用于接收用户登录时发送的访问请求,访问请求中携带有用户标识;

判断模块,根据用户标识读取用户的权限,根据用户权限判断判断用户能否使用各个子系统被分配的功能模块;

发送模块,根据判断结果给各个子系统发送通知消息,各个子系统接收到通知消息后,在用户的各个子系统显示界面上显示用户在各个子系统能使用的功能模块对应的界面元素,隐藏用户在各个子系统不能使用的功能模块对应的界面元素。

本发明的有益效果是:给总系统配置一套功能模块和一个权限管理模块,这些功能模块可应用于总系统内的各个子系统,功能模块由权限管理模块统一管理,权限管理简便灵活,节省了系统资源,提升了用户体验。

附图说明

图1是本发明的一种流程图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

实施例:本实施例的一种用户权限管理方法,如图1所示,包括以下步骤:

S1:给包含若干个子系统的总系统添加若干个功能模块,并定义每个功能模块对应的功能权限值;

给每个子系统分配其可使用的功能模块,每个子系统可使用的功能模块的功能权限值构成该子系统的子系统权限值列表;

设定角色身份,给角色授予其在每个子系统中的权限,给角色授予其在每个子系统中的权限的方法包括以下步骤:给角色建立角色权限值列表,从每个子系统权限值列表中挑选出允许角色在对应子系统中拥有的功能权限值,并将从同一个子系统中挑选出的功能权限值整合成与该子系统对应的角色子系统权限值列表,将角色子系统权限值列表添加到该角色的角色权限值列表中;

设定用户身份,给用户分配角色或单独给用户授予其在每个子系统中的权限,单独给用户授予其在每个子系统中的权限的方法包括以下步骤:给用户建立用户权限值列表,从每个子系统权限值列表中挑选出允许用户在对应子系统中拥有的功能权限值,并将从同一个子系统中挑选出的功能权限值整合成与该子系统对应的用户子系统权限值列表,将用户子系统权限值列表添加到该用户的用户权限值列表中;

S2:当用户登录总系统时,将用户权限值列表和该用户被分配角色对应的角色权限值列表合并成一个总权限值列表,根据总权限值列表判断用户能否使用各个子系统被分配的功能模块。

总系统包括一个权限管理模块、若干个功能模块和至少一个子系统。给总系统配置一套功能模块,这些功能模块可应用于总系统内的各个子系统,功能模块统一集中管理,节省了系统资源。

管理员可根据需要给各个子系统分配其可使用的功能模块,当某个子系统被分配了一个可使用的功能模块时,该子系统的子系统权限值列表中就会添加该功能模块对应的功能权限值。在给角色授予其在某个子系统中的权限时,根据角色需要从该子系统的子系统权限值列表中挑选出允许角色在该子系统中拥有的功能权限值,将这些功能权限值与其所属的子系统标识绑定添加到角色权限中,这样就可以区分用户在不同子系统中拥有的相同的功能权限值。给用户授予其在某个子系统中的权限的方法和给角色授权的方法一样。

当用户登录总系统时,将用户单独被授予的权限和该用户被分配角色对应的权限进行合并处理,然后根据合并后的权限判断用户在各个子系统分别拥有哪些权限,当用户访问各个子系统时,根据用户在各个子系统的权限授予其是否有使用子系统内相应功能模块的权利。

角色在每个子系统中拥有的权限为与该子系统对应的角色子系统权限值列表中的功能权限值,如:角色在订单子系统中拥有的权限记录在角色订单子系统权限值列表中,角色在调度子系统中拥有的权限记录在角色调度子系统权限值列表中。用户在每个子系统中拥有的权限为与该子系统对应的用户子系统权限值列表中的功能权限值,如:用户在订单子系统中拥有的权限记录在用户订单子系统权限值列表中,用户在调度子系统中拥有的权限记录在用户调度子系统权限值列表中。本方法可以对角色赋予权限,也可以直接对系统用户授权,增加了系统的灵活性。

功能权限值用二进制数值表示,二进制数值的位数与功能模块的个数一致,二进制数值的每一位与一个功能模块对应,某一位为0表示没有该位对应的功能权限,某一位为1表示拥有该位对应的功能权限。如:四位的二进制数,从右往左,第一位与删除功能模块对应,第二位于修改功能模块对应,第三位与查询功能模块对应,第四位与添加功能模块对应,删除功能模块对应的功能权限值为0001,修改功能模块对应的功能权限值为0010,查询功能模块对应的功能权限值为0100,添加功能模块对应的功能权限值为1000。

给角色授予其在某个子系统中的权限时,将允许角色在该子系统中拥有的所有功能权限值进行或运算,或运算得到的值就是角色在该子系统中的权限总值;单独给用户授予其在某个子系统中的权限时,将允许用户在该子系统中拥有的所有功能权限值进行或运算,或运算得到的值就是用户在该子系统中的权限总值。权限总值是二进制数值,权限总值每一位与功能模块的对应关系和功能权限值每一位与功能模块的对应关系相同,权限总值某一位为0表示没有该位对应的功能权限,权限总值某一位为1表示拥有该位对应的功能权限。

如:角色在某个子系统中的具有删除、查询、修改、添加的功能,这四个功能模块对应的功能权限值分别为0001、0010、0100、1000,对0001、0010、0100、1000进行或运算,得到1111,1111就是角色在该子系统中的权限总值,代表具有删除、查询、修改、添加四个功能的权限。可将权限总值转换为十进制数值进行存储,节省存储空间。当要验证用户在某个子系统中是否有某个功能权限时,将用户在该子系统中的权限总值与该功能模块的功能权限值进行与运算,结果为1则说明用户拥有该功能权限,结果为0则说明用户没有该功能权限。

每个子系统被分配的功能模块在对应子系统的显示界面上都有相应的界面元素,当用户登录时,如果用户拥有使用某个子系统的某个功能模块的权限,则用户的该子系统显示界面上显示该功能模块对应的界面元素(如按钮、菜单),如果用户没有使用某个子系统的某个功能模块的权限,则用户的该子系统显示界面上不显示该功能模块对应的界面元素。界面元素可以是按钮、菜单等,如:删除按钮、查询按钮、修改按钮、添加按钮、用户菜单列表等。

每个用户被分配一个唯一的用户标识,每个角色被分配一个唯一的角色标识。

本实施例的一种权限管理系统,用于上述的一种用户权限管理方法,包括:

接收模块,用于接收用户登录时发送的访问请求,访问请求中携带有用户标识;

判断模块,根据用户标识读取用户的权限,根据用户权限判断判断用户能否使用各个子系统被分配的功能模块;

发送模块,根据判断结果给各个子系统发送通知消息,各个子系统接收到通知消息后,在用户的各个子系统显示界面上显示用户在各个子系统能使用的功能模块对应的界面元素,隐藏用户在各个子系统不能使用的功能模块对应的界面元素。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1