0.前提

:用户只有一个直属部门,但角色可以关联多个部门

有一种情况就不太适用:比如说地区经理是一个角色,张三是北京市地区经理,他在组织架构中的直属部门是华北大区,然后一个黑龙江的销售李四提一个折扣申请,按流程首先是地区经理来审批,但不能让张三审批,因为李四应该由黑龙江的地区经理来审批(角色再做一个细分?比如角色叫 北京市地区经理?或者地区和部门做切割?)

如果是一个用户可以选多个部门,那么在登录成功后需要选择以哪个部门成员来进入系统

1.若依设计

  • 权限

    • 菜单权限:与角色相关联,不同的角色展示不同的版块即页面
    • 功能权限:是否允许特定的角色执行 增/删/改/查/导入/导出/上传/下载 功能
  • 角色:一个用户可以有0-n个角色
    • 与菜单关联,级联(如果选择了一个版块,那么该版块下的子页面及功能权限都有了)
    • 数据权限
      • 看所有
      • 看自定义部门所有数据
      • 看本部门所有数据
      • 看本部门及子部门所有数据
      • 只能看自己创建的数据

1.1 看所有

1.2 看自定义部门所有数据

先假设一个学生管理系统,组织架构如下:



此时有一个教导处主人的角色,那么他就能看到教导处、高一、高二、高三部门的数据

1.3 看本部门所有数据

班主任能看到班上所有学生的信息

1.4 看本部门及子部门所有数据

班主任能看到班上所有学生的信息以及所有学科成绩的信息

2.扩展

  • 设置用户组属性,给一个用户组批量设置1-n个角色
  • 角色组
  • 角色和角色之间可能还有包含、互斥、交叉的关系
  • 角色和角色之间是否有等级的划分?(类似于地区有层级,国家 > 大区 > 省/自治区/直辖市/特别行政区 > 市/区 > 区/县/市 > 乡/镇/村 等)
  • 角色和数据表之间强关联,指定每个角色对一张表而言展示特定的列,比如说银行卡号、身份证号等涉及机密信息只允许特定的角色才能查看,如果是普通用户则不能查看或者进行数据脱敏(脱敏的话又涉及到以哪种规则来脱敏,比如说把卡号分为几部分,隐藏哪部分,用*或者中文乱码来代替等等)
  • 部门设置直属领导,副领导,便于审批时使用
  • 另外组织架构可能每个公司都不同,有些都是显示的是职能,比如销售部,财务部,行政部等,有些是人名+职能部门,人名一般在职能部门的上面,说明这些职能部门归该人统领,比如说高级副总裁张三(这是一个部门),下面有财务部,行政部等,那边张三手下的部门就需要像张三汇报
  • 在若依这边,岗位也只是一个字段,没有体现其他作用。

若依这块是在vue里面编写的,判断角色hasRole('xx,yy'); 不利于后期修改

最新文章

  1. JVM之上的语言小集
  2. UVA - 11604 General Sultan 题解
  3. IOS 登陆判断问题
  4. Duff in Love - 588B(素数的判断)
  5. CoreAnimation4-隐式动画和显式动画
  6. CFBundleVersion与CFBundleShortVersionString,版本上架注意事项
  7. android性能优化的一些东西
  8. 一个使用openGL渲染的炫丽Android动画库
  9. 使用RestTemplate访问restful服务时遇到的问题
  10. 让你的代码量减少3倍!使用kotlin开发Android(四) kotlin bean背后的秘密
  11. HBase Canary
  12. idea中去除重复代码提示的灰色波浪线
  13. Eclipse控制台输出log日志中文乱码
  14. [C#.Net]Window服务调用外部程序
  15. StringUtils类中isEmpty与isBlank的区别
  16. Java基础再复习(继承、多态、方法内部类**、HashMap用法**、参数传递**)
  17. SharePoint Framework 企业向导(四)
  18. Source Routing
  19. C语言中数据类型的本质
  20. 一 JAVA整体概念以及安装部署

热门文章

  1. Python数据挖掘——银行分控模型的建立
  2. react和vue的区别及优缺点
  3. django前后端分离接口开发
  4. opencv3 7.3 重映射 仿射变换
  5. 基于redis设计的秒杀活动
  6. vue项目安装淘宝镜像一直失败,解决办法
  7. Flowable 中文文档
  8. applicationContext使用注解代替
  9. Linux用户管理2
  10. ADB 命令 使用