Allow beta users to keep data after hep registration
This commit is contained in:
parent
490ce15db2
commit
9e940e31d8
|
|
@ -72,14 +72,18 @@ class RoleManager(models.Manager):
|
||||||
|
|
||||||
|
|
||||||
class UserRoleManager(models.Manager):
|
class UserRoleManager(models.Manager):
|
||||||
def create_role_for_user(self, user, role_key):
|
def get_or_create_role_for_user(self, user, role_key):
|
||||||
from users.models import Role
|
from users.models import Role
|
||||||
try:
|
try:
|
||||||
role = Role.objects.get(key=role_key)
|
role = Role.objects.get(key=role_key)
|
||||||
except Role.DoesNotExist:
|
except Role.DoesNotExist:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return self._create_user_role(user, role)
|
try:
|
||||||
|
user_role = self.model.objects.get(role=role, user=user)
|
||||||
|
return user_role
|
||||||
|
except self.model.DoesNotExist:
|
||||||
|
return self._create_user_role(user, role)
|
||||||
|
|
||||||
def _create_user_role(self, user, role):
|
def _create_user_role(self, user, role):
|
||||||
user_role = self.model(user=user, role=role)
|
user_role = self.model(user=user, role=role)
|
||||||
|
|
@ -104,8 +108,13 @@ class UserManager(DjangoUserManager):
|
||||||
return user
|
return user
|
||||||
|
|
||||||
def create_user_from_hep(self, user_data):
|
def create_user_from_hep(self, user_data):
|
||||||
user = self._create_user_with_random_password_no_save(
|
try:
|
||||||
user_data['firstname'], user_data['lastname'], user_data['email'])
|
user = self.model.objects.get(email=user_data['email'])
|
||||||
|
user.set_unusable_password()
|
||||||
|
except self.model.DoesNotExist:
|
||||||
|
user = self._create_user_with_random_password_no_save( user_data['firstname'],
|
||||||
|
user_data['lastname'],
|
||||||
|
user_data['email'])
|
||||||
|
|
||||||
user.hep_id = user_data['id']
|
user.hep_id = user_data['id']
|
||||||
user.hep_group_id = user_data['group_id']
|
user.hep_group_id = user_data['group_id']
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ def handle_user_and_verify_products(user_data):
|
||||||
user = User.objects.create_user_from_hep(user_data)
|
user = User.objects.create_user_from_hep(user_data)
|
||||||
|
|
||||||
# todo check if email has changed, any impact on our system?
|
# todo check if email has changed, any impact on our system?
|
||||||
# todo handle local logins that are not local anymore
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not hep_client.is_email_verified(user_data):
|
if not hep_client.is_email_verified(user_data):
|
||||||
|
|
@ -72,8 +71,11 @@ def check_and_create_licenses(hep_client, user):
|
||||||
|
|
||||||
|
|
||||||
def create_role_for_user(user, role_key):
|
def create_role_for_user(user, role_key):
|
||||||
UserRole.objects.create_role_for_user(user, role_key)
|
UserRole.objects.get_or_create_role_for_user(user, role_key)
|
||||||
|
|
||||||
if role_key == Role.objects.TEACHER_KEY:
|
if role_key == Role.objects.STUDENT_KEY:
|
||||||
|
return
|
||||||
|
|
||||||
|
if SchoolClass.objects.filter(users__in=[user]).count() == 0:
|
||||||
SchoolClass.create_default_group_for_teacher(user)
|
SchoolClass.create_default_group_for_teacher(user)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue