From d1cd72c5f88c581b8e446f3c92c0eb093500c60e Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Tue, 6 Apr 2021 00:49:09 +0100 Subject: New user login/logoff system using standard Dj --- databaseReset.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'databaseReset.py') diff --git a/databaseReset.py b/databaseReset.py index 1d66706..9151a43 100644 --- a/databaseReset.py +++ b/databaseReset.py @@ -6,7 +6,6 @@ import json import resource import settings -import credentials """ Command-line utility for loading cave data files into troggle's database. The command line options select which combination of classes of data will be imported, @@ -56,9 +55,13 @@ if os.geteuid() == 0: exit() expouser=settings.EXPOUSER -expouserpass=credentials.EXPOUSERPASS +expouserpass=settings.EXPOUSERPASS expouseremail=settings.EXPOUSER_EMAIL +expoadminuser=settings.EXPOADMINUSER +expoadminuserpass=settings.EXPOADMINUSERPASS +expoadminuseremail=settings.EXPOADMINUSER_EMAIL + def reinit_db(): """Rebuild database from scratch. Deletes the file first if sqlite is used, otherwise it drops the database and creates it. @@ -109,9 +112,28 @@ def reinit_db(): print("users in db already: ",len(User.objects.all())) with transaction.atomic(): try: - print(" - Setting up admin user on: " + django.db.connections.databases['default']['NAME']) + print(" - Setting up expo user on: " + django.db.connections.databases['default']['NAME']) print(" - user: {} ({:.5}...) <{}> ".format(expouser, expouserpass, expouseremail)) user = User.objects.create_user(expouser, expouseremail, expouserpass) + user.is_staff = False + user.is_superuser = False + user.save() + except: + print(" ! INTEGRITY ERROR user on: " + settings.DATABASES['default']['NAME']) + print(django.db.connections.databases['default']['NAME']) + print(" ! You probably have not got a clean db when you thought you had.\n") + print(" ! Also you are probably NOT running an in-memory db now.\n") + print("users in db: ",len(User.objects.all())) + print("tables in db: ",len(connection.introspection.table_names())) + memdumpsql(fn='integrityfail.sql') + django.db.connections.databases['default']['NAME'] = ':memory:' + #raise + + with transaction.atomic(): + try: + print(" - Setting up expoadmin user on: " + django.db.connections.databases['default']['NAME']) + print(" - user: {} ({:.5}...) <{}> ".format(expoadminuser, expoadminuserpass, expoadminuseremail)) + user = User.objects.create_user(expoadminuser, expoadminuseremail, expoadminuserpass) user.is_staff = True user.is_superuser = True user.save() -- cgit v1.2.3