使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)

前言

来源

我们团队有一个内部工具,一直是团队成员使用,由于这个工具是命令行格式,多少有点不方便,后来我想,要么给做一个UI来调用这个工具吧,于是操刀用python+flask+bootstrap实现了,确实方便了很多,团队同事也很喜欢。

后来其他团队同事看到了这个工具,也觉得很不错,想让他们的团队成员也一起使用,那么新的需求就来了,不同团队的同事,他们看到的用户界面应该是不一样的,也就是我们常说的基于用户角色的权限控制(Role Based Access Control),这一块后来我也花了一点时间做出来了,虽然不是完美,但是应付内部使用足够。

在这个教程里面,我把这一块的实现再略微做了一些简化,给自己将来留作参考,如果有其他人觉得有用,请随意取用。

效果

在这个教程中,我定义了三个角色

  1. 管理员(admin)

管理员具有所有权限,能查看所有的菜单,包括管理员菜单,支持部菜单,销售部菜单,如下:
​​使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)_第1张图片
使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)_第2张图片
使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)_第3张图片

  1. 支持(support)

支持部成员能看到个人菜单和支持部的功能菜单。如下图

使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)_第4张图片
使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)_第5张图片

  1. 销售(sales)

销售部成员能看到个人菜单和销售部菜单。如下图
使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)_第6张图片
使用Python+Flask+Bootstrap实现一个简单的用户权限管理(RBAC)(Part1)_第7张图片

源代码

本文所提及的所有源代码已经上传到了
https://github.com/junfhu/rbacdemo
源代码结构如下

[root@localhost myproject]# tree
.
├── db_design.txt
├── run.py
└── tool_portal
├── init.py
├── model.py
├── static
│ ├── css
│ │ ├── bootstrap.min.css
│ │ └── signin.css
│ └── js
│ ├── bootstrap.min.js
│ └── jquery-3.4.1.min.js
├── templates
│ ├── index.html
│ ├── layout.html
│ └── login
│ ├── change_password.html
│ ├── login.html
│ ├── role_add.html
│ ├── role_edit.html
│ ├── role_management.html
│ ├── user_add.html
│ └── user_management.html
├── users.sqlite
└── views
├── init.py
└── login.py

其他

因为本人非专业码农,这个也纯属内部工具,不足很多,如果不合意,请多多指正,不要踢我:)。

你可能感兴趣的:(python学习,python,bootstrap,flask)