Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-27 07:41:41

0001 from django.core.management.base import BaseCommand, CommandError
0002 from django.contrib.auth.models import User
0003 from rest_framework.authtoken.models import Token
0004 
0005 class Command(BaseCommand):
0006     help = 'Create or retrieve an API token for a user.'
0007 
0008     def add_arguments(self, parser):
0009         parser.add_argument('username', type=str, help='The username for the token.')
0010         parser.add_argument('--create-user', action='store_true', help='Create the user if they do not exist.')
0011 
0012     def handle(self, *args, **options):
0013         username = options['username']
0014         create_user = options['create_user']
0015         
0016         try:
0017             user = User.objects.get(username=username)
0018         except User.DoesNotExist:
0019             if create_user:
0020                 self.stdout.write(self.style.SUCCESS(f'User "{username}" not found. Creating new user.'))
0021                 user = User.objects.create_user(username=username)
0022             else:
0023                 raise CommandError(f'User "{username}" does not exist. Use --create-user to create it.')
0024 
0025         token, created = Token.objects.get_or_create(user=user)
0026         
0027         if created:
0028             self.stdout.write(self.style.SUCCESS(f'New token created for user "{username}": {token.key}'))
0029         else:
0030             self.stdout.write(self.style.SUCCESS(f'Token for user "{username}" is: {token.key}'))