| 1 | """
|
|---|
| 2 | Management utility to create anonuser.
|
|---|
| 3 | """
|
|---|
| 4 | import random
|
|---|
| 5 | import string
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 | from django.contrib.auth.models import User, get_hexdigest
|
|---|
| 9 |
|
|---|
| 10 | class Command(BaseCommand):
|
|---|
| 11 | option_list = BaseCommand.option_list
|
|---|
| 12 | help = 'Used to create an anonuser.'
|
|---|
| 13 |
|
|---|
| 14 | def handle(self, *args, **options):
|
|---|
| 15 | username = 'BuiltinDjangoAnonymousUser'
|
|---|
| 16 | try:
|
|---|
| 17 | anonuser = User.objects.get(username=username)
|
|---|
| 18 | except User.DoesNotExist:
|
|---|
| 19 | anonuser = User(username=username)
|
|---|
| 20 |
|
|---|
| 21 | anonuser.first_name = 'Anonymous'
|
|---|
| 22 | anonuser.last_name = 'User'
|
|---|
| 23 | anonuser.email = 'invalid@localhost.com'
|
|---|
| 24 | password = ""
|
|---|
| 25 | for n in range(0, 73):
|
|---|
| 26 | password += random.choice(string.printable)
|
|---|
| 27 |
|
|---|
| 28 | algo = 'sha1'
|
|---|
| 29 | salt = get_hexdigest(algo, str(random.random()), str(random.random()))[:5]
|
|---|
| 30 | hsh = get_hexdigest(algo, salt, password)
|
|---|
| 31 | anonuser.password = '%s$%s$%s' % (algo, salt, hsh)
|
|---|
| 32 |
|
|---|
| 33 | anonuser.save()
|
|---|