logging & more robust login
This commit is contained in:
parent
c061cad194
commit
523f82f2a9
3 changed files with 48 additions and 7 deletions
|
|
@ -185,3 +185,22 @@ if DEBUG:
|
|||
else:
|
||||
LOGIN_REDIRECT_URL = "https://anmeldung.repaircafe-hilpoltstein.de/"
|
||||
LOGOUT_REDIRECT_URL = "https://anmeldung.repaircafe-hilpoltstein.de/"
|
||||
|
||||
|
||||
LOG_LEVEL = "INFO"
|
||||
if DEBUG:
|
||||
LOG_LEVEL = "DEBUG"
|
||||
|
||||
LOGGING = {
|
||||
"version": 1,
|
||||
"disable_existing_loggers": False,
|
||||
"handlers": {
|
||||
"console": {
|
||||
"class": "logging.StreamHandler",
|
||||
},
|
||||
},
|
||||
"root": {
|
||||
"handlers": ["console"],
|
||||
"level": LOG_LEVEL,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,14 @@
|
|||
Authentication backends for RepApp.
|
||||
"""
|
||||
import unicodedata
|
||||
import logging
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.backends import ModelBackend
|
||||
from mozilla_django_oidc.auth import OIDCAuthenticationBackend
|
||||
from .models import OneTimeLogin, Organisator, Reparateur
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def generate_username(email):
|
||||
# Using Python 3 and Django 1.11+, usernames can contain alphanumeric
|
||||
|
|
@ -71,19 +74,31 @@ class KeycloakOIDCAB(OIDCAuthenticationBackend):
|
|||
|
||||
def create_user(self, claims):
|
||||
user = super(KeycloakOIDCAB, self).create_user(claims)
|
||||
logger.debug(f'Create user {user.email}')
|
||||
|
||||
try:
|
||||
user.username = claims.get(
|
||||
'preferred_username', generate_username(user.email))
|
||||
user.save()
|
||||
except Exception as exception:
|
||||
logger.error(exception)
|
||||
user.username = generate_username(user.email)
|
||||
user.save()
|
||||
|
||||
logger.debug(f'Updated username {user.username}')
|
||||
|
||||
create_repapp_user(user)
|
||||
|
||||
return user
|
||||
|
||||
def update_user(self, user, claims):
|
||||
logger.debug(f'Update user {user.email} ({user.username})')
|
||||
try:
|
||||
user.username = claims.get(
|
||||
'preferred_username', generate_username(user.email))
|
||||
user.save()
|
||||
except Exception as exception:
|
||||
logger.error(exception)
|
||||
|
||||
create_repapp_user(user)
|
||||
|
||||
|
|
|
|||
|
|
@ -271,8 +271,15 @@ class RegisterGuestFormView(generic.edit.FormView):
|
|||
if not CustomUser.objects.filter(email=mail).exists():
|
||||
password = ''.join(random.choice(string.ascii_letters)
|
||||
for i in range(10))
|
||||
|
||||
username = name
|
||||
i = 1
|
||||
while CustomUser.objects.filter(username=username).first():
|
||||
username = f'{name}{i}'
|
||||
i = i + 1
|
||||
|
||||
user = CustomUser.objects.create_user(
|
||||
username=name,
|
||||
username=username,
|
||||
email=mail,
|
||||
)
|
||||
user.set_password(password)
|
||||
|
|
|
|||
Reference in a new issue