Zdrojový kód pro seminar.management.commands.load_org_permissions

# -*- coding: utf-8 -*-

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

[dokumentace]class Command(BaseCommand): """ """
[dokumentace] def add_arguments(self, parser): parser.add_argument('file', nargs=1, type=argparse.FileType('r', encoding='utf8'))
[dokumentace] 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]) 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()