You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
from django.contrib.auth import get_user_model
|
|
from django.contrib.auth.models import Group
|
|
from django.core.management.base import BaseCommand
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Добавляет 1 или нескольких юзеров в указанные группы'
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument(
|
|
'--users',
|
|
type=str,
|
|
dest='users_emails',
|
|
help='Емейлы пользователей для добавления'
|
|
)
|
|
parser.add_argument(
|
|
'--groups',
|
|
type=str,
|
|
dest='groups_names',
|
|
help='Наименования групп для добавления'
|
|
)
|
|
|
|
def handle(self, *args, **options):
|
|
for email in options['users_emails'].split(', '):
|
|
try:
|
|
user = get_user_model().objects.get(email=email)
|
|
|
|
for name in options['groups_names'].split(', '):
|
|
try:
|
|
g = Group.objects.get(name=name)
|
|
g.user_set.add(user)
|
|
except Group.DoesNotExist:
|
|
print("""Group with name "%s" doesn't exist""")
|
|
|
|
if name == "admin":
|
|
user.is_superuser = True
|
|
user.is_staff = True
|
|
if name != "students":
|
|
user.is_staff = True
|
|
user.save()
|
|
except get_user_model().DoesNotExist:
|
|
print("""user with email: "%s" not found""" % email) |