我们每天都在使用各种各样的办公自动化系统,也叫OA、ERP系统。不同的用户登录能看到的菜单和数据资源都不一样。

比如,管理员登入财务系统,能看见员工模块,员工登录就看不见,这就是菜单权限;员工登录财务系统,只能看见自己的工资明细,却看不见别人的,这就是数据权限。

那么如何做一个实用的权限模块呢?

我们来设计三张表,用户表、用户权限表、资源表。

用户表存放账号登录信息,资源表存放菜单和按钮资源,用户权限表存放用户ID和资源ID的关联关系。这样就能表示一个用户拥有哪些资源了。

哈哈,上面实现资源权限是不是很简单了,那么如何将数据权限加入进去呢?

这里我们引入一个概念:组织结构,可以将一个部门、一个分组、一个用户看成一个组织,组织之间是具备层级关系的。

我们要用这个组织结构来划分用户数据权限。上图中,admin的组织结构编号为001,A部门就定义为001001,B部门定义为001001001,A组就为001001001001,B组就为001001001002,以此类推,给每一个组织定好编号,根据组织结构,每一个用户都会在组织里,每一条数据都可以跟组织结构关联起来。

例如:财务人员录入员工工资明细,财务人员的组织结构肯定高于员工,通过组织结构编号就能模糊查询出员工信息,然后给员工录入数据;用户登录之后,可以通过组织结构编号查询属于自己的数据权限。所以编号也不是随便定义的,要有一定规律。

基于组织结构,我们的权限模块基础表,就可以分为,组织结构表、用户表、用户权限表、资源表。

注意:用户表属于组织结构,要新增组织结构ID作为外键关联,团队、部门、小组都这样关联起来,就可以实现数据权限了。

运用组织结构的设计模式,基本可以解决OA、ERP等自动化办公系统的权限管理。

更多推送文章请关注公众号:

如何设计一个权限管理模块?相关推荐

  1. 一个权限管理模块的设计(转载)

    一 个用户权限管理模块的设计思路: 1. 权 限资源(功能资源) 系统的所有权限信息.权限具有上下级关系,是一个树状的结构.如下: <!--[if !supportLists]-->u  ...

  2. 一个简易实用的web权限管理模块的应用与实现

    本文介绍一个简易实用的web权限管理模块的应用与实现. 先介绍数据模型和应用界面,后继对实现细节做选择性阐述. 数据表关系如下: 该图标明了登陆用户.角色.部门(机构).用户组.角色和模块功能之间的关 ...

  3. 通俗易懂权限管理模块设计-Java

    最近一直在做CMS系统,发现一些内容其实都是重复出现的,例如权限管理模块.权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问.其实Java中已经有很成熟的权限管理框架,例如 Shi ...

  4. Expo大作战(三十)--expo sdk api之Permissions(权限管理模块),Pedometer(计步器api)

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  5. 如何设计一个权限系统

    本文来说下如何设计一个权限系统 文章目录 概述 权限模型 RBAC0模型 RBAC1模型 RBAC2模型 RBAC3模型 用户组 组织 职位 含有组织/职位/用户组的模型 授权流程 表结构 权限框架 ...

  6. Yii框架中使用SRBAC作为权限管理模块时遇到的问题

    Yii框架中使用SRBAC作为权限管理模块时遇到的问题 Yii框架中使用SRBAC作为权限管理模块时遇到的问题 看到Yii中提供RBAC的插件,SRBAC,就想用用. 结果按照手册上的安装办法,整来整 ...

  7. 6. 添加权限管理模块

    本文主要是以权限管理模块为例来介绍使用springboot+mybatis完成增删改查的功能. 1. 添加Permission实体类 1 package com.lvniao.blog.model; ...

  8. 一个不错的权限管理模块设计案例

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 不哼不哈 来源 | cnblogs.com/myindex/p/9116177.h ...

  9. 如何设计权限管理模块

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:不哼不哈 cnblogs.com/myindex/p/9116177.html 我们比较常 ...

最新文章

  1. 搭建mongodb集群(副本集+分片)
  2. VB 禁止修改系统时间
  3. 微信小程序_指南部分
  4. JAVA中CyclLink怎么用_Java多线程基本使用一
  5. 数据挖掘-分类与预测-神经网络算法
  6. scala调用java库_从scala调用java时的java.lang.IllegalAccessError – solutions / workarounds?...
  7. 【Tomcat】如何优化tomcat配置(从内存、并发、缓存4个方面)优化
  8. 《我也能做CTO之程序员职业规划》之三:曲线定律
  9. java 模式匹配_Java 14 模式匹配,非常赞的一个新特性!
  10. 帮您管好云:阿里云混合云管理平台发布 | 凌云时刻
  11. 使用express-jwt出现 algorithms should be set
  12. Element 表格序号问题
  13. 编写一个图片去水印的小工具
  14. HDU 1859 最小长方形
  15. IDEA插件系列(20):Grep Console插件——显示多颜色调试日志
  16. 各种音视频编解码学习详解之 编解码学习笔记(四):Mpeg系列——Mpeg 4
  17. 高中计算机省赛试题,2013高中信息技术基本功竞赛试卷20130919试题
  18. 程序员趣图,据说这是你写代码的样子……
  19. 市面主流软件静默安装参数
  20. 第二次阅读作业--12061161 赵梓皓

热门文章

  1. 【疯壳·无人机开发教程1】开源编队无人机-开机测试
  2. 猜拳游戏python实现
  3. matlab滤波器滤除低频直流信号,极低频滤波器MATLAB
  4. jQuery-Ajax的使用
  5. Linux——samba服务器部署
  6. subclipse 下载地址
  7. sed命令详解(下)
  8. Flask前后端分离02
  9. Mysql之笛卡尔积
  10. 学习大数据需要具备什么基础么?