python权限管理系统源码_基于Django实现的RBAC权限管理系统模块使用说明

感谢邀搞,翻了翻文档都是连载,不方便单发,还是投这篇吧。

1 这套权限管理系统主要功能是什么?

这套系统是采用RBAC权限模型建立的权限管理模块,权限管理包含了三元组:用户、角色、菜单。用户关联角色,角色绑定菜单,用户会继承对应角色的菜单访问权限,同时根据用户继承的权限动态成导航菜单。

在系统中,可以灵活的划分角色组,可以根据功能特性来划分: - 比如设置系统管理员角色,绑定系统所有菜单,该角色享有系统全部管理功能; - 也可以根据工作职能来划分角色,比如设置行政管理角色,绑定流程管理功能; - 权限的划分可以细致到 数据的浏览、新建、删除、修改等操作行为 - 用户可以关联多个角色组,并继承多个角色组的权限

2 如何设置系统权限?

系统运行后,使用管理员用户登录系统,点击头部【系统】导航,计入系统应用:点击左侧导航栏【基础设置】→【用户管理】在用户管理功能页可以修改用户信息,添加新用户(在添加或修改用户信息的时候可以直接关联角色,继承角色权限)

点击左侧当行栏【权限管理】→【角色管理】在角色管理里面可以添加新的角色,可以修改角色信息,可以关联用户,可以配置角色绑定的菜单。

上图表格中第一个按钮是修改角色信息、第二个是关联用户、第三个是绑定菜单

在角色绑定菜单窗口左侧勾选需要绑定到角色组的菜单,然后点击生成按钮,完成菜单绑定。需要注意的是:如果左侧没有勾选任何菜单,点击生成按钮,系统将会清空当前角色所有权限。

3、如何获取该套权限系统的源代码?

源码下载地址:https://github.com/RobbieHan/sandboxMP

完整的权限管理系统对应的分支是 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.sqlite3数据库文件,权限三元组基础数据都已经保存在数据库中,项目克隆下来后,切换到1-rbac分支,安装python环境(python3.6),安装项目依赖包,依赖包路径:sandboxMP/requirements/dev(可使用记事本打开)

pip install -r dev

有关python环境的安装,和虚拟环境安装可以参考下面链接,唯一区别是5中不是新建项目而是要运行克隆的项目。

https://zhuanlan.zhihu.com/p/48419374

5、如何在权限管理基础上扩展自己的应用?

5.1 如何扩展权限系统

应用的扩展分为两部分: 1. 在现有的app(system)先新增加自己的功能 2. 在权限基础上创建新的app

无论是新增应用还是新建app,参考知乎发布的权限管理功能实现的文章,了解权限管理三元组的创建过程,按照这个流程你可以随意在权限系统的基础上进行扩建自己的应用。

Django实战系列文档说明:https://zhuanlan.zhihu.com/p/49057373

在扩展的过程中唯一需要注意的是要遵循权限管理模块URL的定义规则,创建新的功能后要把URL按照层级录入数据库,绑定角色组,分配给对应的用户即可。

5.2 URL数据录入规范

为了实现基于角色组权限的访问控制和动态导航生成,项目中所有的URL数据都是录入数据库的,除了权限管理包含的三元组的访问URL之外,项目中每次新增应用,都需要将URL录入数据库,并绑定授权访问的角色组。

看图说话:

在项目中URL的定义是遵循一定规范的,具体规范如下:

1、一级菜单: 使用 app名称来命名的,看下sandboxMP/sandboxMP/urls.py中配置:

path('system/', include('system.urls', namespace='system')),

2、二级菜单: 是在具体app应用的urls.py中配置,通过include导入一级菜单定义的URLconf文件,二级菜单可以是一个功能URL也可以是一个分组,项目中把菜单管理和角色管理两个功能划分到一个分组rbac ,看下sandboxMP/apps/system/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、菜单编号: 用来作为菜单排序使用一级菜单编号为1,2,3,4等,例如系统管理编号为1,工程项目编号为2 ;

二级菜单编号以一级菜单编号开头,例如基础设置编号为1.1, 权限管理编号为1.2 ;

三级菜单编号以二级菜单编号开头,例如菜单管理编号为1.21, 角色管理编号为1.22 ;

四级菜单编号以三级菜单编号开头,例如菜单管理中的添加功能编号为1.211 ,修改功能编号为1.212。

6、菜单图标: 导航上菜单显示的图标

只有二级菜单才会定义图标,图标使用的是Font Awesome图标库,具体图标案例可访问官方网站查询:

http://fontawesome.dashgame.com/

7、菜单名称: 用来标识菜单具体作用,角色绑定时菜单树形结构显示的具体名称。

8、父菜单: 定义菜单层级关系,输入菜单时一定不要搞错层级。

9、菜单编码: 前端通过菜单编码来给当前访问的菜单添加激活的高亮样式

6 如何了解权限管理的实现?

本项目配套有完整的开发文档,详细记录了权限管理的开发实现过程,跟着文档你可以从零开始一点点完成本套权限管理模块的开发,文档获取说明:

关注知识星球除了可获取权限管理模块实现的开发文档,还可以获得项目更新过程中的新功能实现开发文档。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资说明】 课程设计基于Vue3和Django实现rbac权限管理系统python码(含前端)+项目说明.zip 在线预览 [https://xadmin.dvcloud.xin/](https://xadmin.dvcloud.xin/) 账号密码:admin/admin123 生成数据表并迁移 ```shell python manage.py makemigrations python manage.py migrate ``` 创建管理员账户 ```shell python manage.py createsuperuser ``` 启动程序 ## a.本地环境直接启动 ```shell python manage.py start all ``` ## b.容器化启动 ```shell docker compose up -d ``` 导入默认菜单 ```shell python manage.py loaddata loadjson/menu.json ``` # 附录 容器部署 ```shell docker compose up ``` 保存当前菜单为文件 ```shell python manage.py dumpdata system.MenuMeta system.Menu -o loadjson/menu.json ``` nginx 前端代理 【备注】 1、该资内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值