RBAC介绍

RBAC 介绍(4星)

# RBAC:Role-Based Access Control -->基于角色的访问控制
# 公司内部系统,crm:客户关系管理,oa系统,自动化运维项目
# 原理:权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便

# Django的 Auth组件(app) 采用的认证规则就是RBAC

# 如何实现rbac,先看django的auth如何实现
	 -User表:存用户信息
     -Permission表:存权限:发工资,招人
     -Role表: 存角色:市场,销售,运营,开发,运维,测试。。。。
     -用户和角色是多对多,中间表
     -权限和角色是多对多,中间表
     -用户和权限是多对多,中间表
        
 # django的auth的表
    auth_group:组表,角色表
    auth_permission:权限表
    auth_user:用户表
    
    auth_group_permissions:角色和权限多对多中间表
    auth_user_groups:用户和角色多对多中间表
    
    auth_user_user_permissions:用户和权限多对多的中间表
    
# django有个后台管理admin,自带rbac,有的公司基于admin做二次开发(xadmin,simple-ui)
# 有的公司自己基于前后端分离实现rbac
	-https://github.com/liqianglog/django-vue-admin
        
        
 # 前后端混合的后台前端模板    
 X-admin:lay-ui+jq实现的纯静态页面(html,css,js),帮助我们快速开发后台管理系统
    
    
 # 智慧大屏
https://gitee.com/kevin_chou/dataVIS.git

Django的内置RBAC(六表)

权限三表

image

权限六表

image

实操

models.py

from django.db import models

from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
    mobile = models.CharField(max_length=11, unique=True)

    def __str__(self):
        return self.username


class Book(models.Model):
    name = models.CharField(max_length=64)

    def __str__(self):
        return self.name


class Car(models.Model):
    name = models.CharField(max_length=64)

    def __str__(self):
        return self.name

admin.py

from . import models

from django.contrib.auth.admin import UserAdmin as DjangoUserAdmin

# 自定义User表后,admin界面管理User类
class UserAdmin(DjangoUserAdmin):
    # 添加用户课操作字段
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('username', 'password1', 'password2', 'is_staff', 'mobile', 'groups', 'user_permissions'),
        }),
    )
    # 展示用户呈现的字段
    list_display = ('username', 'mobile', 'is_staff', 'is_active', 'is_superuser')


admin.site.register(models.User, UserAdmin)
admin.site.register(models.Book)
admin.site.register(models.Car)

这样就可以登陆到admin后台进行操作了

posted @ 2022-04-07 23:17  zong涵  阅读(153)  评论(0编辑  收藏  举报