感谢你的邀请。我已经阅读了这些文件,它们都是序列化的。单发不方便。1 这个权限管理系统的主要功能是什么?
本系统是RBAC权限模型建立的权限管理模块。权限管理包括三元组:用户、角色和菜单。用户与角色相关联,并且角色绑定到菜单。用户会继承相应角色的菜单访问权限,导航菜单会根据用户继承的权限动态形成。
在系统中,角色组可以根据其功能特点灵活划分: - 例如设置系统管理员角色,绑定系统所有菜单,该角色享有系统所有管理功能;- 还可以根据工作职能划分角色,例如设置行政管理角色,绑定流程管理职能;- 权限划分可以细化到数据浏览、创建、删除、修改等操作行为。 - 用户可以关联多个角色组,继承多个角色组的权限
2 如何设置系统权限?
系统运行后,使用管理员用户登录系统,点击头部的【系统】导航,被包含在系统应用中:
上表第一个按钮是修改角色信息,第二个是关联用户开源django信息管理系统,第三个是绑定菜单
在字符绑定菜单窗口左侧,勾选需要绑定字符组的菜单,然后点击生成按钮天外神坛源码网,完成菜单绑定。需要注意的是,如果左侧没有勾选菜单,点击生成按钮,系统会清除当前角色的所有权限。
3、如何获取这个权限系统的源码?
源代码下载地址://
完整权限管理系统对应的分支是1-rbac,可以用git克隆项目,然后切换到1-rbac分支
# 在本地运行git bash,然后克隆项目,再切换到1-rbac分支
git clone git@github.com:RobbieHan/sandboxMP.git
cd sandboxMP # 进入项目目录
git branch # 查看分支
git checkout 1-rbac # 切换到1-rbac分支,当然你也可以使用1-rbac分支来生成新的分支
备注:1-rbac分支只包含一个完整的权限管理模块,可以在此基础上扩展自己的应用,比如搭建CMDB系统,比如写流程管理系统,比如自动化运维管理等。 ,只要遵守权限管理的规则即可。
4、如何运行项目?
为了方便本地环境的操作,项目中使用的db.文件和权限三元组的基础数据已经保存在数据库中。项目克隆后,切换到1-rbac分支,安装环境(.6),安装项目依赖包,依赖包路径://dev(可以用记事本打开)
pip install -r dev
关于环境的安装,以及虚拟环境的安装,可以参考以下链接。唯一不同的是,在5中,不是新建项目开源django信息管理系统,而是克隆项目。
https://zhuanlan.zhihu.com/p/48419374
5、如何基于权限管理扩展我的应用程序?5.1 如何扩展权限系统
应用的扩展分为两部分:1.在已有的app()中先添加自己的函数2.根据权限新建一个app
无论是新应用还是新应用,参考知乎发布的关于权限管理功能实现的文章,了解权限管理三元组的创建过程。按照这个流程,你可以根据权限系统随意扩展自己的应用。
Django实战系列文档说明:https://zhuanlan.zhihu.com/p/49057373
扩容过程中唯一需要注意的就是遵循权限管理模块的URL的定义规则。新建函数后,需要根据级别将URL输入数据库,绑定角色组,分配给对应的用户。
5.2 URL数据输入规范
为了实现基于角色组权限的访问控制和动态导航生成,将项目中的所有URL数据都录入数据库。除了权限管理中包含的三元组的访问 URL 外,项目中的每个新应用都需要将 URL 输入数据库并绑定授权访问的角色组。
看图说话:
项目中 URL 的定义遵循一定的规范。具体规格如下:
1、一级菜单:以应用名称命名,见//urls.py中的配置:
path('system/', include('system.urls', namespace='system')),
2、二级菜单:在具体app应用的urls.py中配置。通过导入一级菜单定义的文件,二级菜单可以是功能URL,也可以是组。项目中将菜单管理和角色管理两个功能分为一组rbac,见/apps//urls.py中的配置:
path('rbac/menu/', views_menu.MenuListView.as_view(), name='rbac-menu'),
path('rbac/role/', views_role.RoleView.as_view(), name='rbac-role'),
菜单管理和角色管理这两个功能分为rbac组。rbac 是我们的二级菜单。它是导航栏中的可折叠菜单。进入数据库时,URL 字段为空。二级菜单通过外键绑定到一级菜单
3、三级菜单:三级菜单是特定功能菜单,通过三级菜单可以跳转到特定功能页面。三级菜单通过外键与二级菜单相关联。注意:如果功能菜单与一级菜单直接相关,将直接显示在左侧导航栏中,不再属于任何折叠菜单分组。当二级菜单为功能菜单而非分组菜单时,需要在进入系统时配置功能菜单的访问URL。
4、四级菜单:具体功能操作菜单,属于某个功能菜单,比如下面的角色创建、列表、更新、删除这些菜单属于角色管理:
path('rbac/role/create/', views_role.RoleCreateView.as_view(), name='rbac-role-create'),
path('rbac/role/list/', views_role.RoleListView.as_view(), name='rbac-role-list'),
path('rbac/role/update/', views_role.RoleUpdateView.as_view(), name='rbac-role-update'),
path('rbac/role/delete/', views_role.RoleDeleteView.as_view(), name='rbac-role-delete'),
功能操作菜单通过外键与功能菜单相关联。当功能菜单定义为二级菜单时,功能菜单下对应的操作菜单为三级菜单。
5、菜单号:用于菜单排序
6、菜单图标:导航上菜单显示的图标
只有二级菜单会定义图标。图标使用字体图标库。具体图标案例请访问官网:
http://fontawesome.dashgame.com/
7、菜单名称:用于标识菜单的具体功能,字符绑定时在菜单树结构中显示的具体名称。
8、父菜单:定义菜单层次关系。进入菜单时一定不要弄错层次结构。
9、菜单代码:前端使用菜单代码为当前访问的菜单添加活动高亮样式
6 如何理解权限管理的实施?
本项目配有完整的开发文档,详细记录了权限管理的开发和实施过程。按照文档,您可以从头开始完成这套权限管理模块的开发。文件获取说明:
最新文档跟随知识星球:/(打开微信链接)
知识星球快速入口:微信公众号搜索:知识星球,关注发送,获取星球连接。
注意知栏:/
轻量级办公管理系统项目开源地址://
关注知识星球,除了获取权限管理模块实现的开发文档外,还可以在项目更新过程中获取新功能实现的开发文档。 |