3 SAAS-HRM中的权限设计

3.1 需求分析

3.1.1 SAAS平台的基本元素

SAAS平台管理员: 负责平台的日常维护和管理,包括用户日志的管理、租户账号审核、租户状态管理、租户费用的管理,要注意的是平台管理员不能对租户的具体业务进行管理
企业租户: 指访问SaaS平台的用户企业,在SaaS平台中各租户之间信息是独立的。
租户管理员: 为租户角色分配权限和相关系统管理、维护。
租户角色: 根据业务功能租户管理员进行角色划分,划分好角色后,租户管理员可以对相应的角色进行权限分配
租户用户: 需对租户用户进行角色分配,租户用户只能访问授权的模块信息。

3.1.2 需求分析

在应用系统中,权限是以什么样的形式展现出来的?对菜单的访问,页面上按钮的可见性,后端接口的控制,都要进行充分考虑

  • 前端
    前端菜单:根据是否有请求菜单权限进行动态加载
    按钮:根据是否具有此权限点进行显示/隐藏的控制

  • 后端
    前端发送请求到后端接口,有必要对接口的访问进行权限的验证

3.2 权限设计

针对这样的需求,在有些设计中可以将菜单,按钮,后端API请求等作为资源,这样就构成了基于RBAC的另一种授权模型(用户-角色-权限-资源)。在SAAS-HRM系统的权限设计中我们就是才用了此方案

针对此种权限模型,其中权限究竟是属于菜单,按钮,还是API的权限呢?那就需要在设计数据库权限表的时候添加类型加以区分(如权限类型 1为菜单 2为功能 3为API)。

3.3 表结构分析


这里要注意的是,权限表与权限菜单表、页面元素表与API接口表都是一对一的关系与传统的RBAC模型对比不难发现此种设计的好处:

  1. 不需要区分哪些是操作,哪些是资源
  2. 方便扩展,当系统要对新的东西进行权限控制时,我只需要建立一个新的资源表,并确定这类权限的权限类型标识即可。

SaaS-HRM中的权限设计相关推荐

  1. 小程序中的权限设计_低代码布道师的博客-CSDN博客

    日常我们开发小程序的时候,经常需要考虑权限如何设计,比如在我的页面,管理员可以看到一些菜单,而普通用户可以看到另外一些菜单.那如何设计这种带权限的功能呢?本文就以低代码工具为例,看看低代码中是如何设计 ...

  2. 分布式系统中,权限设计实践

    一.权限控制 1.业务背景 在复杂的业务系统中,权限管理是最基础的模块,通过各种授权结构模型,管理用户在产品中可访问和可操作的边界,以实现系统和数据安全管理的目的: 通常在系统的任何层面都会涉及到一定 ...

  3. 第3章-SaaS-HRM系统用户权限设计

    学习目标: 理解RBAC模型的基本概念及设计思路 了解SAAS-HRM中权限控制的需求及表结构分析 完成组织机构的基本CRUD操作 完成用户管理的基本CRUD操作 完成角色管理的基本CRUD操作 1 ...

  4. 基于角色的权限设计(一)

    在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案. 在权限系统中,功能(权限)是最小的单位,比如起草新闻.编辑新闻.审核新闻.删除新闻等,而角色是一类功能的集合 ...

  5. 八百里加急$数据结构追加2组织权限设计

    在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案. 在权限系统中,功能(权限)是最小的单位,比如起草新闻.编辑新闻.审核新闻.删除新闻等,而角色是一类功能的集合 ...

  6. 【商城应用】菜单权限设计

    今天给大家介绍一下后台管理系统中权限功能的开发,先给大家介绍一下权限功能产品部分的设计,数据库设计以后有时间再和大家介绍.其实如果在需求都确定的情况下,开发功能是一件特别简单的事情.每一个用户可以控制 ...

  7. 关于SaaS平台中应对多租户系统模式的权限设计

    概要 在不同的系统中,其实关于权限设计是没有标准方案的.一般地,依据项目需求进行系统的功能规划设计.组织结构设计以及对应的权限设计等即可.权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是 ...

  8. 权限系统设计学习总结(4)—— SaaS 平台多租户模式下权限设计

    一.RBAC模型 1.1.概念 权限设计最常见的就是基于 RBAC 模型.而 RBAC 模型又有 RBAC0.RBAC1.RBAC2.RBAC3 等几种常见的模式.RBAC(Role-Based Ac ...

  9. 基于RBAC 的SAAS系统权限设计

    为什么系统需要权限控制? 生活中有没有权限限制? 灾难片电影<2012>中富人和权贵有权登上诺亚方舟,穷苦老百姓只有等着灾难的来临: 屌丝身边为什么没有那些长得漂亮.身材好的姑娘存在? 因 ...

最新文章

  1. shell中数组基础语法
  2. 踩自行车来进行人力发电,真的能驱动旋转木马吗?
  3. 函授本科统考计算机考试时间,函授2006级计算机、机电本科第一学期考试时间安排.doc...
  4. 阿里敏捷教练:多团队开发一个产品的组织设计和思考
  5. 07MySQL综合应用
  6. 【论文笔记】Joint Cascade Face Detection and Alignment
  7. 第十二课:OpenGL扩展
  8. Linux下的HDFS命令
  9. 大专计算机办公应用,计算机办公软件应用论文
  10. 两个命令行应用程序的交互——使用Java的Process类完成复杂控制台程序的自动化操作(以围棋GTP协议为例)
  11. BufferedImage修改图片大小
  12. linux 火狐 jre插件,[原]再谈Firefox安装java插件的问题
  13. c++ bitset 基本用法
  14. 码教授M01和J42项目答辩胜利结束,广阔天空任你们闯荡!
  15. java 里button的功能_java中怎么通过摁一个按钮显示一个图片的功能
  16. 【项目优化01】使用Git管理项目及使用redis缓存短信验证码,菜品以及套餐数据
  17. R语言 数据处理 dplyr包 数据清理
  18. 如何储存拨发带分机号的电话
  19. Linux系统安装hadoop教程
  20. 热爱生活,余生不负自己!

热门文章

  1. 超详细的MySQL入门教程(三)
  2. 变压器直流电阻测试仪RS485串口数据采集接入数据库及MESERP系统方案
  3. 力扣 2090. 半径为 k 的子数组平均值
  4. java erc 2.0_如何使用Web3j库管理Java中的ERC20令牌
  5. 学习笔记:快速入门ZooKeeper技术
  6. 零基础JavaScript-DOM入门(第一天)(第二天)
  7. PUT、POST的区别:
  8. [转]AP,mAP计算
  9. 沁恒触摸蓝牙模块方案测试体验(CH582)
  10. PMML模型文件在机器学习的实践经验