Authentification utilisateur standard équipe

- Un utilisateur ayant la perm `kfet.is_team` peut se déconnecter et
  connecter à la place un utilisateur `kfet_genericteam` ne disposant
  que de la permission `kfet.is_team`
- Backend et vue associée à cette connexion créés
This commit is contained in:
Aurélien Delobelle 2016-08-20 19:35:45 +02:00
parent ddc81540c7
commit 6ec42edd60
7 changed files with 69 additions and 2 deletions

View file

@ -1,6 +1,8 @@
import hashlib
from kfet.models import Account
from django.contrib.auth.models import User, Permission
from gestioncof.models import CofProfile
from kfet.models import Account, GenericTeamToken
class KFetBackend(object):
def authenticate(self, request):
@ -16,3 +18,19 @@ class KFetBackend(object):
return None
return user
class GenericTeamBackend(object):
def authenticate(self, username=None, token=None):
valid_token = GenericTeamToken.objects.get(token=token)
if username == 'kfet_genericteam' and valid_token:
user, created = User.objects.get_or_create(username='kfet_genericteam')
perm_is_team = Permission.objects.get(codename='is_team')
user.user_permissions.add(perm_is_team)
return user
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None