zoukankan      html  css  js  c++  java
  • django-BaseCommand自带的权限分组

    note:  应该是这样的结构,并且commands名字是固定的。 执行: python manage.py  initgroup

    initgroup.py

    # -*- coding: utf-8 -*-
    from django.core.management import BaseCommand
    from django.contrib.auth.models import Group, Permission, ContentType
    
    from apps.news.models import News, NewsCategory, Comment
    from apps.cms.models import Banners
    from apps.course.models import Course, CourseOrder, Category
    
    
    class Command(BaseCommand):
        def handle(self, *args, **options):
            # 编辑组/财务组/管理员组/超级管理员
            # python manage.py initgroup
            # 编辑人员权限:编辑文章/轮播图/付费资讯/课程
    
            # 创建编辑组
            # model对应的app名字   !!!get_for_model not is get_for_models
            edit_content_types = [
                ContentType.objects.get_for_model(News),
                ContentType.objects.get_for_model(NewsCategory),
                ContentType.objects.get_for_model(Banners),
                ContentType.objects.get_for_model(Comment),
                ContentType.objects.get_for_model(Course),
                ContentType.objects.get_for_model(Category),
            ]
            # 添加权限
            # 查找出这些models需要的权限
            edit_permissions = Permission.objects.filter(content_type__in=edit_content_types)
    
            # 创建权限组的名字
            editGroup = Group.objects.create(name='编辑')
            # 添加权限
            editGroup.permissions.set(edit_permissions)
    
            # 2.创建财务组
            finance_content_types = [
                ContentType.objects.get_for_models(CourseOrder)
            ]
            finance_permissions = Permission.objects.filter(content_type__in=finance_content_types)
            finance_group = Group.objects.create(name='财务组')
            finance_group.permissions.set(finance_permissions)
    
            # 3.创建管理员,拥有财务和编辑权限
            admin_permissions = edit_permissions.union(finance_permissions)
            admin_group = Group.objects.create(name='管理员')
            admin_group.permissions.set(admin_permissions)
    
            self.stdout.write(self.style.SUCCESS("初始化分组成功"))

     权限分组完成,权限验证场景: https://www.cnblogs.com/tangpg/p/9431620.html

  • 相关阅读:
    解决QPainter::drawText修改文字方向
    解决linux环境下qt groupbox 边框不显示问题
    人既然知道努力就可以进步,为什么还是会不努力?
    学会锻炼感悟爱与幸福的能力
    IT人为什么难以拿到高薪?
    在你月薪三千的时候,做月薪八千的事
    哪些人最终能留在北京?
    如何利用数据挖掘进行分析的方法
    查找附近的人
    dapper 操作类封装
  • 原文地址:https://www.cnblogs.com/tangpg/p/9428980.html
Copyright © 2011-2022 走看看