mamweb/various/management/commands/load_org_permissions.py

31 lines
948 B
Python
Raw Normal View History

from django.core.management.base import BaseCommand
from django.contrib.sessions.models import Session
from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist
import json
import argparse
class Command(BaseCommand):
"""
"""
def add_arguments(self, parser):
parser.add_argument('file', nargs=1, type=argparse.FileType('r', encoding='utf8'))
def handle(self, *args, **options):
try:
orgroup = Group.objects.get(name='org')
except ObjectDoesNotExist:
orgroup = Group(name='org')
orgroup.save()
permissions = json.load(options['file'][0])
2021-03-16 21:38:07 +01:00
orgroup.permissions.clear()
for jp in permissions:
ct = ContentType.objects.get(app_label = jp['ct_app_label'], model = jp['ct_model'])
perm = Permission.objects.get(content_type = ct, codename = jp['codename'])
orgroup.permissions.add(perm)
orgroup.save()