27 lines
890 B
Python
27 lines
890 B
Python
from django.contrib.auth.backends import ModelBackend
|
|
|
|
from utilisateurs.models import Maraudeur
|
|
|
|
class MyBackend(ModelBackend):
|
|
|
|
def authenticate(self, **kwargs):
|
|
print('authenticate using MyBackend')
|
|
return super().authenticate(**kwargs)
|
|
|
|
def get_user(self, user_id):
|
|
""" Retourne la classe enfant de l'utilisateur connecté
|
|
s'il en a une, sinon le User par défaut.
|
|
"""
|
|
print('use MyBackend: get_user', user_id)
|
|
try:
|
|
user = Maraudeur.objects.get(pk=user_id)
|
|
except Maraudeur.DoesNotExist:
|
|
print('no Maraudeur found. Using base user class')
|
|
user = super().get_user(user_id)
|
|
print("found:", user, user.__class__)
|
|
return user
|
|
|
|
def has_perm(self, *args, **kwargs):
|
|
print('call has_perm', args, kwargs)
|
|
return super().has_perm(*args, **kwargs)
|