Jonas Havelka
1 year ago
2 changed files with 0 additions and 52 deletions
@ -1,31 +0,0 @@ |
|||||
|
|
||||
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]) |
|
||||
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() |
|
||||
|
|
@ -1,21 +0,0 @@ |
|||||
|
|
||||
from django.core.management.base import BaseCommand |
|
||||
from django.contrib.sessions.models import Session |
|
||||
from django.contrib.auth.models import Group, Permission |
|
||||
import json |
|
||||
|
|
||||
class Command(BaseCommand): |
|
||||
""" |
|
||||
Dump permissions for group 'org' such that them can be used on an other machine. |
|
||||
|
|
||||
""" |
|
||||
def handle(self, *args, **options): |
|
||||
orgroup = Group.objects.get(name='org') |
|
||||
permissions = [] |
|
||||
for p in orgroup.permissions.all(): |
|
||||
permissions.append({ |
|
||||
'codename': p.codename, |
|
||||
'ct_app_label': p.content_type.app_label, |
|
||||
'ct_model': p.content_type.model}) |
|
||||
print(json.dumps(permissions)) |
|
||||
|
|
Loading…
Reference in new issue