diff --git a/src/consents/views.py b/src/consents/views.py index 966616e5cff34e1d0962b7060e78ca6a71cf7c4f..ec6a703c830ecd5a3b8131c044babcb4ce443714 100644 --- a/src/consents/views.py +++ b/src/consents/views.py @@ -350,7 +350,7 @@ class CreateUserConsentView(APIView): status=status.HTTP_401_UNAUTHORIZED, ) - serializer = CreateUserSerializer(data=request.data, many=True) + serializer = CreateUserSerializer(data=request.data) serializer.is_valid(raise_exception=True) email = serializer.validated_data["email"] @@ -382,15 +382,17 @@ class CreateUserConsentViaConnectServiceView(APIView): status=status.HTTP_401_UNAUTHORIZED, ) - serializer = CreateUserShibbolethSerializer(data=request.data, many=True) + serializer = CreateUserShibbolethSerializer(data=request.data) serializer.is_valid(raise_exception=True) email = serializer.validated_data["email"] shib_id = shib_connector_resolver_to_pairwaise_id(email=email, provider=provider) - if CustomUser.objects.filter(uid=shib_id).first() is None: + user = CustomUser.objects.filter(shibboleth_connector_identifier=shib_id).first() + + if not user: user = CustomUser.objects.create( - uid=shib_id, # this is the pairwaise id + shibboleth_connector_identifier=shib_id, # this is the pairwaise id email=''.join(random.choices(string.ascii_uppercase + string.digits, k=8)) + "@manual-created.polaris", first_name=''.join(random.choices(string.ascii_uppercase + string.digits, k=8)), last_name=''.join(random.choices(string.ascii_uppercase + string.digits, k=8))