首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

(开源)都进来!简单易懂、功能强大的权限+可视化流程管理系统

编程知识
2024年07月16日 13:06

1、预览地址:http://139.155.137.144:9012

2、qq群:801913255

一、前言

  随着网络的发展,企业对于信息系统数据的保密工作愈发重视,不同身份、角色对于数据的访问权限都应该大相径庭。

  列如

  1、不同登录人员对一个数据列表的可见度是不一样的,如数据列、数据行、数据按钮等都可能不太一样。

  2、表单的灵活设计及呈现。

  3、流程的灵活设计及呈现。

  4、接口的调用信息者及性能监控。

  5、等等。

  对于以上等功能,如果要做出一套完整且灵活的权限管理系统,实属不易。

  而接下来作者要介绍的“OverallAuth”权限管理系统,可以说是最全面和最好用的权限管理系统。

  说明:这篇文章作者会把完成“OverallAuth”系统的技术选型和大致设计思路一一分享给大家。文章较长请大家耐心看完,在文章的最后有项目的预览地址。

二、目录

三、主要技术选择

 

 4、功能介绍及设计简述

  4.1 菜单设计

    菜单设计非常简单,就是普通的树形结构,但作者依赖于layui vue 强大的功能结构,在此基础上对每个菜单设计了一个重定向和菜单是否启用的开关。

    说明:菜单是否启用的存在,可以精准的控制,每个菜单在什么时候开启,什么关闭(配合任务调度)。这样可以针对性调整用户在什么时候拥有什么样的菜单(比如说用于活动页面,在活动结束后,可以立马关闭),大大减低了维护成本。

  如图:

  4.2 角色管理

  角色对于任何一个系统来说都是重中之重,本系统当然也不例外。

  “OverallAuth”系统的角色几乎覆盖了所有功能,按钮、菜单、用户、数据行、数据列、流程、表单等。所以在设计方面,我分别建立了以下关系,角色和按钮、角色和菜单、角色和用户、角色和数列等。以便灵活且高效的控制系统中的任何一个功能。

  当然角色也不是万能的,对于更加细致化的控制,角色也有过于“拥挤”的时候,所以在“OverallAuth”系统中,作者还加入了一些规则以便更加细致的控制每个模块。

  4.3 用户管理

  之前也说到,角色和用户存在关系,以便控制用户的菜单权限等,这和一般的权限管理系统基本一致,但本“OverallAuth”系统作为一个灵活且好用的权限管理系统,作者在这上面下了一定功夫,引入了“用户组”等概念。简单来说就是一个用户可以拥有多种角色,角色之间是互补状态。

  4.4 按钮样式

  在一个系统中,操作按钮是必不可少的,它们的样式也大相径庭,所以作者设计了自定义按钮样式功能,如图:

  该功能可以控制系统中任何一个按钮的样式,从而做到实时改变每个按钮样式。

  4.5 按钮列表

  在拥有自定义按钮样式后,当然要把样式运用到每个按钮之上,所以作者做了一个系统列表,来控制每个功能的按钮样式和按钮事件及按钮名称等,如图:

  为了高效的开发,作者对按钮控制写了一套模版,开发者只需要在有使用按钮的地方,加入模版便能够得到相应的按钮。

  4.5 菜单权限、按钮权限

  菜单权限和按钮权限,又称“功能级权限”,这是大多数系统都拥有的功能,它的实现方式也很简单,就是每个菜单、按钮都可以通过角色来设置用户的可操作“单元”。如图:

  “功能级权限”对于一般系统来说已经足够,但对于要求较高的系统来说还远远不够。所以作者编写出了一套能高效控制“数据列”、“数据行”的功能级权限管理。

  4.6 显示列设置

   在说如何控制“数据列”权限前,我想先说说数据列的动态获取,只有掌握了需要显示的数据列,才能有效的控制它。

  在webapi中,作者写了一个接口(通过反射),以便获取所有需要显示的数据列。其中包括字段、字段类型、字段描述等信息。并且在此基础上可以编辑改变字段显示的名称、宽度、排序方式、对齐方式、插槽、是否行权限字段等信息。如图

  在上述图片中,可以看到有一个“同步属性”的按钮,只要返回字段有变动,便会自动同步其变动信息,使其作用到系统每一个显示的地方,让开发更便捷。

  4.7 数据列权限

  什么是数据列权限,举一个简单的列子。

  人员A和人员B都有一个“员工信息”的列表。其中“员工信息”中有一列为“工资”的数据。为了工资保密,员工A有查看人员工资的权限,员工B没有查看权限,那么就需要数据列权限。

  而作者在“OverallAuth”系统中,结合4.6 显示列设置 这一功能,完成了这一功能,且能很灵活的控制每个模块列的显示情况。如图所示:

下面是admin和张三两个用户数据列的对比图

   4.8 数据行权限

  对于数据行权限,作者使用动态解析的方式,写了一套数据行权限的解析规则(把界面上选择要建立规则的字段,动态解析成程序能识别的代码)。可以灵活的设置数据的显示规则。如图所示

  通过上述图片可以看到,设置规则后,同一个用户列表,同一个登录人,只能看到符合规则的数据。

  

 

From:https://www.cnblogs.com/cyzf/p/18305103
本文地址: http://www.shuzixingkong.net/article/83
0评论
提交 加载更多评论
其他文章 表格集算表高性能原理:揭秘纯前端百万行数据秒级响应的魔法
最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 集算表 (Table Sheet)是一个具备高性能渲染、数据绑定功能、公式计算能力的数据表格,通过全新构建的关系型数据管理器结合结构化公式,在高性能表格的基础上提供排序、筛选、样式、行列冻结、自
表格集算表高性能原理:揭秘纯前端百万行数据秒级响应的魔法 表格集算表高性能原理:揭秘纯前端百万行数据秒级响应的魔法 表格集算表高性能原理:揭秘纯前端百万行数据秒级响应的魔法
Netcode for Entities如何添加自定义序列化,让GhostField支持任意类型?以int3为例(1.2.3版本)
一句话省流:很麻烦也很抽象,能用内置支持的类型就尽量用。 首先看文档。官方文档里一开头就列出了所有内置的支持的类型:Ghost Type Templates 其中Entity类型需要特别注意一下:在同步这个类型的时候,如果是刚刚Instantiate的Ghost(也就是GhostId尚未生效,上一篇
Java21的虚拟线程Virtual Thread初体验
我们之前使用的是操作系统平台的线程,就称之为“系统线程”吧。虚拟线程是JDK维护的,原理跟WebFlux的底层实现差不多,都是工作线程分离。 要使用虚拟线程,需要使用JDK21以上,包括21。 虚拟线程可以创建很多很多 系统线程不能轻易创建太多,我们一直被教导创建线程是很重的活动。 for (int
Java21的虚拟线程Virtual Thread初体验
超级炫酷的终端神器 eDEX-UI
目录eDEX-UI主要亮点:优点:软件简介安装LinuxWindows效果更换皮肤matrixTron-disrupted退出常见问题解答 eDEX-UI,不仅是一款全屏幕、跨平台的终端模拟器和系统监视器,更是一件被封存的艺术品,让你尽情沉浸于科幻般的装逼幻想之中。它的界面设计独特,仿佛来自未来世界
超级炫酷的终端神器 eDEX-UI 超级炫酷的终端神器 eDEX-UI 超级炫酷的终端神器 eDEX-UI
说说XXLJob分片任务实现原理?
XXL Job 是一个开源的分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展的分布式任务调度框架。 这两天咱们开发的 AI Cloud 项目中,也使用到了 XXL Job 来执行分布式任务的调度,可以看出它的部署和使用虽然步骤很多,但用起来还是很简单的。 因为其本身为 Spri
说说XXLJob分片任务实现原理? 说说XXLJob分片任务实现原理?
开启GitLab的邮件通知功能以及一些外观配置
前言 维护GitLab的同事离职了 刚好又有新实习生需要申请账号 只能我来出手了 其实之前安装了 GitLab 之后一直还是用得比较粗糙的 属于是勉强能用的水平,有些配置都还没改好 这次把邮件功能、域名、外观啥的配置好了,写篇文章记录一下 目录结构 先来回顾一下 GitLab 的目录结构 我们的 G
开启GitLab的邮件通知功能以及一些外观配置
解码 xsync 的 map 实现
解码 xsync 的 map 实现 最近在寻找 Go 的并发 map 库的时候,翻到一个 github 宝藏库,xsync (https://github.com/puzpuzpuz/xsync) 。这个库提供了一些支持并发的数据结构,计数器Counter,哈希 Map,队列Queue。我着重看了下
解码 xsync 的 map 实现 解码 xsync 的 map 实现 解码 xsync 的 map 实现
为视觉语言多模态模型进行偏好优化
为视觉语言多模态模型进行偏好优化 训练模型使得它能够理解并预测人类偏好是一项比较复杂的任务。诸如 SFT (Supervised finetuning) 的传统的方法一般都需要耗费较大成本,因为这些算法需要对数据打上特定的标签。而偏好优化 (Preference Optimization) 作为一种
为视觉语言多模态模型进行偏好优化 为视觉语言多模态模型进行偏好优化 为视觉语言多模态模型进行偏好优化