diff --git a/program/serializers.py b/program/serializers.py index 179238eacab896376736ee147ebb1a8a0ded3085..f1eda9b491b326c0ef4734a231846b14b27b695e 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -30,6 +30,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.db import IntegrityError from django.utils import text, timezone from program.models import ( + CBA, Category, FundingCategory, Host, @@ -49,7 +50,6 @@ from program.models import ( TimeSlot, Topic, Type, - UserProfile, ) from program.typing import ( Logo, @@ -98,9 +98,9 @@ class ErrorSerializer(serializers.Serializer): code = serializers.CharField(allow_null=True) -class ProfileSerializer(serializers.ModelSerializer): +class CBASerializer(serializers.ModelSerializer): class Meta: - model = UserProfile + model = CBA read_only_fields = ( "created_at", "created_by", @@ -108,15 +108,15 @@ class ProfileSerializer(serializers.ModelSerializer): "updated_by", ) fields = ( - "cba_username", - "cba_user_token", + "username", + "user_token", ) + read_only_fields class UserSerializer(serializers.ModelSerializer): is_privileged = serializers.SerializerMethodField() permissions = serializers.SerializerMethodField() - profile = ProfileSerializer(required=False) + cba = CBASerializer(required=False) host_ids = serializers.PrimaryKeyRelatedField( many=True, queryset=Host.objects.all(), required=False, source="hosts" ) @@ -133,6 +133,7 @@ class UserSerializer(serializers.ModelSerializer): "host_ids", ) fields = ( + "cba", "email", "first_name", "is_active", @@ -140,7 +141,6 @@ class UserSerializer(serializers.ModelSerializer): "is_superuser", "last_name", "password", - "profile", "username", ) + read_only_fields @@ -157,17 +157,17 @@ class UserSerializer(serializers.ModelSerializer): Create and return a new User instance, given the validated data. """ - profile_data = validated_data.pop("profile") if "profile" in validated_data else None + cba_data = validated_data.pop("cba") if "cba" in validated_data else None user = super(UserSerializer, self).create(validated_data) user.date_joined = timezone.now() user.set_password(validated_data["password"]) user.save() - if profile_data: - UserProfile.objects.create( - cba_username=profile_data.get("cba_username").strip(), - cba_user_token=profile_data.get("cba_user_token").strip(), + if cba_data: + CBA.objects.create( + username=cba_data.get("username").strip(), + user_token=cba_data.get("user_token").strip(), created_by=self.context.get("request").user.username, user=user, ) @@ -197,42 +197,42 @@ class UserSerializer(serializers.ModelSerializer): if "is_superuser" in validated_data: instance.is_superuser = validated_data.get("is_superuser") - profile_data = validated_data.pop("profile") if "profile" in validated_data else None + cba_data = validated_data.pop("cba") if "cba" in validated_data else None try: - profile = instance.profile + cba = instance.cba except ObjectDoesNotExist: - profile = None + cba = None - if profile_data: + if cba_data: user = self.context.get("request").user - if profile: - # having the update_user_profile permission overrides being the user - if not (user.has_perm("update_user_profile") or user.id == instance.id): + if cba: + # having the update_cba permission overrides being the user + if not (user.has_perm("update_cba") or user.id == instance.id): raise exceptions.PermissionDenied( - detail="You do not have permission to update this user profile." + detail="You do not have permission to update this user CBA profile." ) - if "cba_username" in profile_data: - profile.cba_username = profile_data.get("cba_username") + if "username" in cba_data: + cba.username = cba_data.get("username") - if "cba_user_token" in profile_data: - profile.cba_user_token = profile_data.get("cba_user_token") + if "user_token" in cba_data: + cba.user_token = cba_data.get("user_token") - profile.updated_by = self.context.get("request").user.username - profile.save() + cba.updated_by = self.context.get("request").user.username + cba.save() else: - # having the create_user_profile permission overrides being the user - if not (user.has_perm("create_user_profile") or user.id == instance.id): + # having the create_cba permission overrides being the user + if not (user.has_perm("create_cba") or user.id == instance.id): raise exceptions.PermissionDenied( - detail="You do not have permission to create this user profile." + detail="You do not have permission to create this user CBA profile." ) - UserProfile.objects.create( + CBA.objects.create( created_by=self.context.get("request").user.username, user=instance, - **profile_data, + **cba_data, ) instance.save()