当前位置: 首页 > wzjs >正文

湛江制作网站公司太原市建设工程招标投标网站

湛江制作网站公司,太原市建设工程招标投标网站,厦门建设局长是谁,怎么选择镇江网站建设自我简介:4年导游,10年程序员,最近6年一直深耕低代码领域,分享低代码和AI领域见解。 一直想实现一套相对完善的权限控制系统。在实践过程中总结了一些权限相关的基础知识。准备基于 go-micro Casbin And-Design-Pro 实现 RBAC 模…

自我简介:4年导游,10年程序员,最近6年一直深耕低代码领域,分享低代码和AI领域见解。

一直想实现一套相对完善的权限控制系统。在实践过程中总结了一些权限相关的基础知识。准备基于 go-micro + Casbin + And-Design-Pro 实现 RBAC 模型的权限管理.

仓库地址:Accbase

在项目中经常有的场景是不同的用户的权限不同。

常有如下场景:

  • 不同的用户在页面中可以看到的元素和操作不同
  • 不同的用户对页面的访问权限不同

权限是什么?

权限管理是后台系统经常会涉及的模块,主要是对不同的用户访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,账号过期,隐私数据泄露等问题。

功能划分

权限管理系统总体分为:授权与认证

  1. 授权:指将权限授予角色或用户。
  2. 认证:指用户访问资源的某些操作时,根据授权,判断是否允许用户的访问。

基础概念

权限模型
  1. RBAC模型,基于角色的访问控制(Role-Based Access Control)。抽象为Who(权限的拥有者或主体 Group,Role)对What(Which)(权限针对的对象或资源)进行How(具体的权限)的操作。通过角色关联用户,角色关联权限的方式间接赋予用户权限,构成“用户-角色-权限-资源”的授权模型。
  2. ABAC模型,基于属性的访问控制(Attribute-Based Access Control)。四个核心元素分别为:用户、资源、环境和操作。用户是请求访问系统资源的实体,可以是个人、程序或设备。资源是需要保护的系统实体,如文件、数据库、应用程序等。环境包括访问发生时的上下文信息,如时间、地点、安全级别等。操作是用户请求对资源执行的行为,如读取、写入、删除等。
权限名词
  1. 资源 (Resources):资源就是想要的到的最终物质。菜单、页面、按钮、API、数据等均为资源。
  2. 用户 (User):是发起操作的主体,按类型分可分为2B和2C用户,可以是后台管理系统的用户等。
  3. 角色(Role):是中间量,连接了用户和权限的关系,每个角色可以关联多个权限,同时一个用户关联多个角色,那么这个用户就有了多个角色的多个权限。使得授权操作便捷易拓展。角色不能随意删除或禁用。角色支持继承和互斥(如用户不能同时具备申请和审批人的角色)
  4. 权限 (Permissions):是用户可以访问的资源。
    • 页面权限:即用户登录系统可以看到的页面,由菜单来控制,菜单包括一级菜单和二级菜单,只要用户有一级和二级菜单的权限,那么用户就可以访问页面。
    • 操作权限:即页面的功能按钮,包括查看,新增,修改,删除,审核等,用户点击删除按钮时,后台会校验用户角色下的所有权限是否包含该删除权限。
    • 数据权限:即不同用户在同一页面看到的数据是不同的,比如财务部只能看到其部门下的用户数据,比如杭州分公司用户登录系统只能看到杭州的数据。(解决方案一般是把数据和具体的组织架构关联起来,举个例子,在给用户授权的时候,用户选择某个角色同时绑定组织如财务部或者合肥分公司,那么该用户就有了该角色下财务部或合肥分公司下的的数据权限)
  5. 用户组 (Group):当平台用户基数增大,角色类型增多时,管理员直接给用户组分配角色,用户组里的每个用户即可拥有该角色,而不用操作每个用户完成授权。
  6. 组织(Organization):可以把组织与角色进行关联,用户加入组织后,就会自动获得该组织的全部角色,无须管理员手动授予,同时用户在调岗时,只需调整组织,角色即可批量调整。组织的另外一个作用是控制数据权限,把角色关联到组织,那么该角色只能看到该组织下的数据权限。组织是一个集合。
  7. 职位(Post):每个组织部门下都会有多个职位,每个职位的权限是不同的。职位是针对人的个体。
  8. 菜单(Menu):用户登录系统可以看到的页面,可以有多层级。
  9. 策略:是模型中定义访问规则的语句,描述了在什么条件下可以执行哪些操作。策略通常由安全管理员定义,并可以随时更新以适应组织的变化。
关联关系
  1. 用户和角色是多对一/多的关系
  2. 角色和权限是多对多的关系
授权流程
  1. 手动授权:给用户添加角色,给角色添加用户。给用户添加角色就是在用户管理页面,点击某个用户去授予角色,可以一次为用户添加多个角色;给角色添加用户就是在角色管理页面,点击某个角色,选择多个用户,实现了给批量用户授予角色的目的。
  2. 审批授权:即用户申请某个职位角色,那么用户通过OA流程申请该角色,然后由上级审批,该用户即可拥有该角色,不需要系统管理员手动授予。

权限系统需求

  1. 系统拥有一个超级管理员,拥有系统所有权限
  2. 不同的用户在页面中可以看到的元素和操作不同
  3. 不同的用户对页面的访问权限不同
  4. 操作包括:增删改查审核等
  5. 用户拥有多个角色,那么用户的权限是这些角色权限的合集
  6. 授权操作时选中即生效,无需提交
  7. 用户(User)(帐号)可以拥有多个角色(Role),角色可以被分配给多个用户
  8. 每个用户组的管理员都具有创建角色的能力,并且自己管理这自己的角色
  9. 每个用户组的管理员都有添加用户,授予用户权限的能力
  10. 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名、密码等,权限是被分离出去了的。用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联。
  11. 角色是使用权限的基本单位,拥有一定数量的权限,通过角色赋予用户权限
  12. 权限指用户根据角色获得对程序某些功能的操作,例如对文件的读、写、修改和删除功能
  13. 账号有效期
  14. 注意区分角色和职位
  15. 给组织的总部分配账号。组织的管理员,然后自己维护下级数据

数据表

  1. 用户表(帐号)(UserInfo)(将用户的最基本的信息进行管理(在正常的业务系统中可进行扩展用户信息),比如姓名、有效期等)
  2. 角色表(RoleInfo)(对角色基本信息进行管理。用户可以自定义成各种各样的角色)
  3. 菜单表(MenuInfo)
  4. 用户角色表(UserRole)(在用户与角色之间建立起关联,给用户授予哪些角色权限(同一用户可以有多个角色),也可以按角色添加用户,比如将“员工”角色授予公司所有人,而不用按用户一个一个地授权)
  5. 角色菜单表(RoleMenu)
  6. 角色权限表 (RolePromissions) (将角色与系统中的权限点关联起来,也就是完成授权的动作)
  7. 操作表 (Action)(用来存放用户自定义的各种功能操作,比如新增、修改、删除等)
  8. 页面元素表 (Element)

AI时代,对各行业的冲击力只会越来越大,随着AI大模型的竞赛,越来越多强悍的AI模型都会涌现,像软件开发行业的很多工作都会被取代。软件将不再是程序员的专属产物,会由AI创建很多的软件产品。

4年导游,10年程序员,深耕低代码领域6年,持续分享低代码和AI领域领域有价值的思考和沉淀,欢迎关注:winyh5

后续会推出:【挑战365天做 100 套常见的互联网系统】系列文章,让大家可以真实感受到低代码快速落地项目的可行性

http://www.dtcms.com/wzjs/601952.html

相关文章:

  • 搜索引擎有哪些网站西安机械加工网
  • 网站建设情况简介扬州 网站建设
  • 扬中网站建设哪家好公司里开发app的叫什么
  • 做网站app怎么赚钱网页加速器排名
  • 做网站哪家比较好邹城网站制作
  • 做重视频网站网站服务器租赁费高吗
  • 网站建设所有软件清单局域网网站建设协议
  • 网站开发定制公司设计网站推荐知乎
  • 网站域名做链接怎么做商务网站建设与维护 试题
  • 商城网站建站系统动易网站开发
  • 网上做问卷报酬不错的网站是wordpress打字不显示图片
  • 做论坛网站网站加载模式
  • 网站建设需求方案文档网站的ftp服务器
  • 营销网站建立连云港优化推广
  • 太原富库网站建设温州网站推广
  • 企业网站建设存在的问题程序开发步骤不包括
  • 西安米德建站域名只做邮箱没网站要备案吗
  • 可视化网站模板wordpress修改自定义尺寸logo
  • 化州网站开发公司沈阳建设信息网
  • 前程无忧网杭州网站建设类岗位wordpress无法连接app
  • 哪个网站专注做微信模板小程序论坛
  • 简述网站制作流程房产网站程序
  • 张家港快速网站建设企业解决方案案例分析
  • 如何让人帮忙做网站深圳网站 建设
  • 国内网站空间 linux网站积分程序怎么建设
  • 网站 备案 多久知名公司网址
  • 做杂志的网站有哪些老王传奇新开网站
  • 简单描述网站建设流程win10做网站服务器
  • 上海设计招聘网站小程序商城的好处
  • 网站分类主要有哪些申请个人网站多少钱