|
|
@ -0,0 +1,43 @@ |
|
|
|
import getpass |
|
|
|
|
|
|
|
from django.core.management.base import BaseCommand |
|
|
|
from hc.accounts.forms import AvailableEmailForm |
|
|
|
from hc.accounts.views import _make_user |
|
|
|
|
|
|
|
|
|
|
|
class Command(BaseCommand): |
|
|
|
help = """Create a super-user account.""" |
|
|
|
|
|
|
|
def handle(self, *args, **options): |
|
|
|
email = None |
|
|
|
password = None |
|
|
|
|
|
|
|
while not email: |
|
|
|
raw = input("Email address:") |
|
|
|
form = AvailableEmailForm({"identity": raw}) |
|
|
|
if not form.is_valid(): |
|
|
|
print(dir(form)) |
|
|
|
self.stderr.write("Error: " + " ".join(form.errors["identity"])) |
|
|
|
continue |
|
|
|
|
|
|
|
email = form.cleaned_data["identity"] |
|
|
|
|
|
|
|
while not password: |
|
|
|
p1 = getpass.getpass() |
|
|
|
p2 = getpass.getpass("Password (again):") |
|
|
|
if p1.strip() == "": |
|
|
|
self.stderr.write("Error: Blank passwords aren't allowed.") |
|
|
|
continue |
|
|
|
if p1 != p2: |
|
|
|
self.stderr.write("Error: Your passwords didn't match.") |
|
|
|
continue |
|
|
|
|
|
|
|
password = p1 |
|
|
|
|
|
|
|
user = _make_user(email) |
|
|
|
user.set_password(password) |
|
|
|
user.is_staff = True |
|
|
|
user.is_superuser = True |
|
|
|
user.save() |
|
|
|
|
|
|
|
return "Superuser created successfully." |