权限设计-系统登陆用户权限设计

需求分析-场景:

假设需要为公司设计一个人员管理系统,并为各级领导及全体员工分配系统登录账号.有如下几个要求:

1.权限等级不同:公司领导登录后可查看所有员工信息,部门领导登录后只可查看部门员工信息,员工登录后只可查看自己的信息. 

2.访问权限不同;如公司领导登录后,可查看员工薪水分布界面,而员工则不能看到;

3.操作权限不同:如系统管理员可以在信息发布界面进行增删改查发布信息,而普通员工只可以在信息发布界面进行查看,不能修改.删除和新增.

 

功能分析

1.登录一个系统,基本都要输入用户名,密码;

2.每个用户的角色不同,则其访问权限一般也不同,,如:系统管理员:可查看所有界面;普通用户:只能查看部分界面.

3.不同的用户,及时可以查看同样的界面,但在该界面上可进行的操作权限也不同,如

用户1:可在界面1上进行增删改查;

用户2:只可以在界面以上查看,不具备增删改功能;

4.不同用户基本都对应不同的角色,如:用户1.用户2分别对应管理员角色,操作员角色,角色之间也存在权限等级的差异,如:

角色1:对应省级管理员; ==>可以查看该省下的所有学校信息;

角色2:对应实际管理员;==>可以查看该市下的所有学校信息;

角色3:对应县级管理员:==>可以查看该县下的所有学校信息;

不管是省.市.县哪个系统管理员,他们可访问的界面都是相同的(即访问权限相同),且在每个界面上可进行的操作权限也相同,不同的管理员角色可以访问的学校个数和学校的范围不同,这里称这种不同为:权限等级不同.

总结:

 

从上面的分析中,主要涉及以下几个概念:

1.角色:

系统管理员角色

系统操作员角色

普通用户角色;不同的角色,其访问权限是不同的,即可访问的模块(界面)集合是不同的;角色的权限等级也不同,权限等级如:公司领导,部分领导,普通员工

2.模块(界面)模块就是指具体的界面,每个模块上又有不同的操作,如:增删改查

3.访问权限:确定角色可以访问的模块(界面)集合

4.操作访问权限:确定可以在各个模块(界面)上进行操作集合如增删改查;

5.权限等级:即确定角色可以访问的范围,如:

角色1:权限等级为公司领导,则可以查看公司所有员工信息

角色2:权限等级为部门领导,则只可以查看该部门所有员工信息

 

数据库设计


总体模型:
 
 

1.模块定义表:

模块是分层级的,如:信息管理–>联系方式管理;
每个模块都有上级模块。

2. 角色定义表:

含有角色权限等级,用于为角色分配权限等级;
角色权限等级:是一个菜单选项,包括公司领导、部门领导、普通员工;

3.授权定义表:

用于给角色分配访问权限以及为每个模块分配操作权限;
1个角色可以含有多个模块,同样1个模块可以分配给多个角色,所以角色和模块是多对多的关系;这种多对多的关系可以使用关系表来实现,即通过联合主键和实现关系表:
表中含有字段“操作权限”,用于给每个界面分配操作权限,见下图:
若该模块有增删改查功能,则操作权限15,即二进制的“1111”,若该模块只有查看功能,则操作权限为2,即二进制的“0010”,同样的,“0111”表示该模块有增、改、查功能;

4. 系统用户表:

该表中“角色权限等级”—>应与“所属角色”中的权限等级保持一致,之所以该表中重复该字段,是为了方便查询。
角色权限等级取值:
  1. 公司领导:company_id不能为空;
  2. 部门领导:company_id、dept_id不能为空;
  3. 普通员工:company_id、dept_id、staff_id不能为空;



登录执行过程


1. 系统登录时,首先输入用户名、密码;
2. 确定访问权限:
   2.1 判断该用户的“角色编号”;
   2.2 在“授权定义表”中根据该“角色编号”查找相应的模块,找到的模块集合即是访问权限;
3. 确定操作权限:
   3.1 在2.2步骤中查询到的每个模块都有相应的操作权限,即构成了每个模块的操作权限;
4. 确定权限等级:
   4.1 结合该用户的“角色权限等级”+“公司标识”+“部门标识”+“员工标识”,到员工信息表中去查找相应员工,具体如下:
   角色权限等级取值:
   1. 公司领导:查找<员工信息表.公司标识==该用户.公司标识>的所有用户;
   2. 部门领导:查找<员工信息表.公司标识==该用户.公司标识 && 
                                  员工信息表.部门标识==该用户.部门标识>的所有用户;
   3. 普通员工:查找<员工信息表.公司标识==该用户.公司标识 && 
                                  员工信息表.部门标识==该用户.部门标识 && 
                                  员工信息表.员工标识==该用户.公司标识>的所有用户;

转载于:https://www.cnblogs.com/baijinshuo/p/9956279.html

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值