权限管理模块设计

来源:互联网 发布:岭回归 数据标准化 编辑:程序博客网 时间:2024/05/21 13:57

权限管理是没个项目中都会设计的模块,根据自己项目的经验与阅读的相关资料做了一个下面的一个权限管理模块的程序:

接触的知识有限,理解上还不到位,功能有限还会继续完善,希望与大家多多交流,欢迎交友,共同提高 qq:705170100

一:简介

本模块涉及两个级别的单位: 单位级别一以及其下属多个单位(单位级别二);多个不同的用户角色如:系统管理员,设备一科管理员,设备二科管理员,材料科管理员,单位管理员,普通用户等,没个管理员管理不同大的模块,相应模块之间也有交叉。

本程序设计有登录模块,用户的增删改查,每个角色针对没个模块操作的权限的管理与分配。

根据填写的登录用户信息(用户名,密码),得到用户所具有的权限,根据权限显示不同的模块导航与功能按键。

本文主要介绍的是如何进行权限的控制,其他介绍并不完全。

二:数据库表有如下

有如下表

userInfo表存储用户基本信息;

UnitFirst与UnitSecond存储的是两个级别单位的基本信息;

UserGroup用户组表,用户分成的几个角色 如图:

 

LimitesList 权限列表:针对系统中每个功能,分别对应一个Code;(表中有字段未使用)

如上:有用户与单位信息管理,用户组与权限管理,代码维护三个模块,(其下边的子模块也可添加 如 110001:用户与单位信息模块下的 添加用户,120001 用户组管与权限理中的 权限分配)可具体到每个模块的单个具体操作。

UserGroupLimits用户组权限,每个用户组对应的权限列表中的权限

结合以上两个表可以看出 系统管理员(1)拥有以上的三个模块的权限:(ID为:1,2,3)(100001,100002,100003)的权限;

设备一科(4)拥有(ID为 1,3)两个模块的权限……

 

三 情景模拟:

 1 登录用户 1001,密码123 登录系统,则可根据用户表中的 UserGroupID确定该用户所属的用户组; 如 (ID为 4 )设备一科管理员组

2 根据UserGroupLimits表可根据 UserGroupID (ID 为4),读取出改登录用户所拥有的权限表中的ID信息,如(LimitListsID 为:1,3)

3 根据读取出的权限表ID(1,3),可以到权限表中查询出 每个功能对应的权限代码

4 则在应用程序中可以 读取到该权限代码,如果有该代码,则控制显示相应模块的导航显示。(1001登录 有用户与单位信息,代码维护两个模块的权限,则在导航中控制按钮可见),具体功能同样可以读取权限列表,确定操作按钮的显示与否。

 

四 权限的添加与修改

1 添加了新的功能,那么只需在LimitsList表中添加该功能的说明,并指定唯一权限代码。

3为某个用户组添加或取消权限 添加权限:在GroupLimits中添加该用户组的ID与与此对应的权限ID即可。 取消权限 则将该条删除即可。

 

 

 

 

原创粉丝点击