Browse Source

createsuperuser management command requires an unique email address (#318)

pull/320/head
Pēteris Caune 5 years ago
parent
commit
012ad88bb3
No known key found for this signature in database GPG Key ID: E28D7679E9A9EDE2
3 changed files with 45 additions and 1 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +43
    -0
      hc/accounts/management/commands/createsuperuser.py
  3. +1
    -1
      hc/settings.py

+ 1
- 0
CHANGELOG.md View File

@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file.
### Improvements
- Show a red "!" in project's top navigation if any integration is not working
- createsuperuser management command requires an unique email address (#318)
## v1.12.0 - 2020-01-02


+ 43
- 0
hc/accounts/management/commands/createsuperuser.py View File

@ -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."

+ 1
- 1
hc/settings.py View File

@ -43,6 +43,7 @@ with open(os.path.join(BASE_DIR, "CHANGELOG.md"), encoding="utf-8") as f:
INSTALLED_APPS = (
"hc.accounts",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
@ -51,7 +52,6 @@ INSTALLED_APPS = (
"django.contrib.messages",
"django.contrib.staticfiles",
"compressor",
"hc.accounts",
"hc.api",
"hc.front",
"hc.payments",


Loading…
Cancel
Save