from django.core.management.base import BaseCommand, CommandError from engine.vibes_auth.models import User from engine.vibes_auth.utils.otp import generate_otp_code class Command(BaseCommand): help = "Generate a fresh admin OTP code for a user (for when SMTP is down)" def add_arguments(self, parser): parser.add_argument("email", type=str, help="Email of the staff user") def handle(self, *args, **options): email = options["email"] try: user = User.objects.get(email=email) except User.DoesNotExist as e: raise CommandError(f'User "{email}" does not exist.') from e if not user.is_staff: raise CommandError(f'User "{email}" is not a staff member.') code = generate_otp_code(user) self.stdout.write(f"OTP code for {email}: {code}") self.stdout.write("Valid for 5 minutes.")