33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
|
|
from django.core.management.base import BaseCommand
|
|
from django.contrib.auth import get_user_model
|
|
from django.contrib.auth.models import Group
|
|
|
|
User = get_user_model()
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Assign a user to a group'
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument('username', type=str, help='The username of the user')
|
|
parser.add_argument('group_name', type=str, help='The name of the group')
|
|
|
|
def handle(self, *args, **options):
|
|
username = options['username']
|
|
group_name = options['group_name']
|
|
|
|
try:
|
|
user = User.objects.get(username=username)
|
|
except User.DoesNotExist:
|
|
self.stdout.write(self.style.ERROR(f'User "{username}" does not exist'))
|
|
return
|
|
|
|
try:
|
|
group = Group.objects.get(name=group_name)
|
|
except Group.DoesNotExist:
|
|
self.stdout.write(self.style.ERROR(f'Group "{group_name}" does not exist'))
|
|
return
|
|
|
|
user.groups.add(group)
|
|
self.stdout.write(self.style.SUCCESS(f'Successfully assigned user "{username}" to group "{group_name}"'))
|