Jan Dittberner
f9ea88cd24
This commit adds a new model that enhances the user profile with an offline support code, a postal address and an email address to allow users to reset their profile. The commit adds to Django admin commands 'populate' and 'reset_offline_code' to maintain the help user profiles from the Django command line.
29 lines
968 B
Python
29 lines
968 B
Python
from django.contrib.auth import get_user_model
|
|
from django.core.management import BaseCommand, CommandError
|
|
|
|
from help.models import HelpUser
|
|
|
|
User = get_user_model()
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = "Reset offline account reset code for existing users"
|
|
|
|
def add_arguments(self, parser):
|
|
parser.add_argument("users", nargs='+', type=str)
|
|
|
|
def handle(self, *args, **options):
|
|
for name in options["users"]:
|
|
try:
|
|
user = User.objects.get(username=name)
|
|
except User.DoesNotExist:
|
|
raise CommandError(f'User {name} does not exist')
|
|
|
|
help_user = user.helpuser
|
|
if help_user is None:
|
|
help_user = HelpUser.objects.create(email_address=user.email)
|
|
|
|
help_user.generate_offline_account_code()
|
|
help_user.save()
|
|
|
|
self.stdout.write(f"generated new offline account reset code {help_user.offline_account_code} for {name}")
|