RBAC介绍与美化admin后台页面

RBAC介绍

RBAC是基于角色的访问控制(Role-Based Access Control),在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。

RBAC用在公司内部系统用的多,对外的系统用的少

  • 权限:员工管理、工资管理、测试...
  • 角色(组、部门):开发部门、测试部门...
  • 用户:tom、tony...

比如如下几个表设计:

用户表:

id username password
1 tom 123
2 tony 123
3 jack 123

权限表:

id permission url
1 查看 /list/
2 添加 /create/
3 编辑 /update/
4 删除 /destroy/

角色表:

id role
1 管理员
2 开发部门
3 测试部门

角色与权限关系表:

id role_id permission_id
1 1 1
2 1 2
3 1 3
4 1 4
...

用户与角色关系表:

id user_id role_id
1 1 1
2 2 2
3 3 3

基本的RBAC有五张表,RBAC也有六张表的情况,就是给权限表和用户表也建立多对多关系,因为可能有些用户只需要用到其中一个权限就够了,但是又没有合适的角色,所以给权限表和用户表建立关联。

Django的admin后台管理就是基于RBAC的:

  • auth_user:用户表
  • auth_permission:权限表
  • auth_group:组,角色表
  • auth_user_groups:用户和组中间表
  • auth_group_permissions:组和权限中间表
  • auth_user_user_permissions:用户和权限中间表

美化admin后台管理

Simple UI美化admin后台管理页面。

Simple UI是一款前后端分离的自带rbac的后台管理框架,由django+drf+vue=djagnovueadmin组成,官方网址:https://simpleui.72wo.com/simpleui/

快速上手

安装模块:

pip install django-simpleui

项目配置文件配置:

  INSTALLED_APPS = [
      'simpleui',  # 添加
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      ...
  ]

完成。

admin登录界面

image

admin管理首页

image

posted @ 2022-06-22 18:23  Yume_Minami  阅读(261)  评论(0编辑  收藏  举报