Coverage for jutil/management/commands/setpass.py: 32%

18 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2022-10-07 16:40 -0500

1from django.contrib.auth import get_user_model 

2from django.core.management.base import BaseCommand, CommandParser 

3from django.db.models import Q 

4 

5 

6class Command(BaseCommand): 

7 help = "Non-interactive user password reset" 

8 

9 def add_arguments(self, parser: CommandParser): 

10 parser.add_argument("name", type=str) 

11 parser.add_argument("password", type=str) 

12 

13 def handle(self, *args, **options): 

14 name = options["name"] 

15 passwd = options["password"] 

16 users = get_user_model().objects.filter(Q(username=name) | Q(email=name)) 

17 if not users: 

18 self.stdout.write("User not found") 

19 for user in users: 

20 user.set_password(passwd) 

21 user.save() 

22 self.stdout.write("User {} password set to {}".format(name, passwd))