1
0
mirror of https://github.com/etesync/server synced 2025-07-12 18:18:16 +00:00
etesync-server/django_etebase/admin-cli/management/commands/group-create.py
Martin Michalec e1446646e9 Add admin-cli
2021-06-02 23:29:18 +02:00

31 lines
1.2 KiB
Python
Executable File

from django.core.management.base import BaseCommand
from django.contrib.auth.models import Group, Permission
from django.db.utils import IntegrityError
class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument( 'name'
, type=str
, help="New group's name." )
parser.add_argument( '--permissions'
, type=str
, nargs='*'
, default=[]
, help="New group's permissions." )
def handle(self, *args, **options):
try:
for index,permission in enumerate(options["permissions"]):
options["permissions"][index] = Permission.objects.get(name=permission)
group = Group.objects.create(name=options["name"])
group.permissions.set(options["permissions"])
group.save()
except (IntegrityError,Permission.DoesNotExist) as exception:
self.stdout.write(self.style.ERROR(f'Unable to create group "{options["name"]}": ' + str(exception)))
exit(1)
self.stdout.write(self.style.SUCCESS(f'Group "{options["name"]}" has been created.'))
exit(0)