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()