🔥(backend) remove users systematic return of profile_contact
Custom UserManaged returned profile_contact field when returning users. While this may be useful later, we'd currently rather have it return users.
This commit is contained in:
committed by
Marie
parent
5113eb013b
commit
63e059a4e6
@@ -29,7 +29,6 @@ class ContactSerializer(serializers.ModelSerializer):
|
|||||||
class UserSerializer(serializers.ModelSerializer):
|
class UserSerializer(serializers.ModelSerializer):
|
||||||
"""Serialize users."""
|
"""Serialize users."""
|
||||||
|
|
||||||
data = serializers.SerializerMethodField(read_only=True)
|
|
||||||
timezone = TimeZoneSerializerField(use_pytz=False, required=True)
|
timezone = TimeZoneSerializerField(use_pytz=False, required=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
@@ -37,17 +36,12 @@ class UserSerializer(serializers.ModelSerializer):
|
|||||||
fields = [
|
fields = [
|
||||||
"id",
|
"id",
|
||||||
"email",
|
"email",
|
||||||
"data",
|
|
||||||
"language",
|
"language",
|
||||||
"timezone",
|
"timezone",
|
||||||
"is_device",
|
"is_device",
|
||||||
"is_staff",
|
"is_staff",
|
||||||
]
|
]
|
||||||
read_only_fields = ["id", "email", "data", "is_device", "is_staff"]
|
read_only_fields = ["id", "email", "is_device", "is_staff"]
|
||||||
|
|
||||||
def get_data(self, user) -> dict:
|
|
||||||
"""Return contact data for the user."""
|
|
||||||
return user.profile_contact.data if user.profile_contact else {}
|
|
||||||
|
|
||||||
|
|
||||||
class TeamAccessSerializer(serializers.ModelSerializer):
|
class TeamAccessSerializer(serializers.ModelSerializer):
|
||||||
|
|||||||
@@ -186,7 +186,7 @@ class UserViewSet(
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
permission_classes = [permissions.IsSelf]
|
permission_classes = [permissions.IsSelf]
|
||||||
queryset = models.User.objects.all().select_related("profile_contact")
|
queryset = models.User.objects.all()
|
||||||
serializer_class = serializers.UserSerializer
|
serializer_class = serializers.UserSerializer
|
||||||
throttle_classes = [BurstRateThrottle, SustainedRateThrottle]
|
throttle_classes = [BurstRateThrottle, SustainedRateThrottle]
|
||||||
pagination_class = Pagination
|
pagination_class = Pagination
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Generated by Django 5.0.1 on 2024-02-06 15:08
|
# Generated by Django 5.0.1 on 2024-02-21 12:34
|
||||||
|
|
||||||
import core.models
|
import django.contrib.auth.models
|
||||||
import django.core.validators
|
import django.core.validators
|
||||||
import django.db.models.deletion
|
import django.db.models.deletion
|
||||||
import timezone_field.fields
|
import timezone_field.fields
|
||||||
@@ -59,9 +59,6 @@ class Migration(migrations.Migration):
|
|||||||
'verbose_name_plural': 'users',
|
'verbose_name_plural': 'users',
|
||||||
'db_table': 'people_user',
|
'db_table': 'people_user',
|
||||||
},
|
},
|
||||||
managers=[
|
|
||||||
('objects', core.models.UserManager()),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='Contact',
|
name='Contact',
|
||||||
|
|||||||
@@ -149,16 +149,6 @@ class Contact(BaseModel):
|
|||||||
raise exceptions.ValidationError({"data": [error_message]}) from e
|
raise exceptions.ValidationError({"data": [error_message]}) from e
|
||||||
|
|
||||||
|
|
||||||
class UserManager(auth_models.UserManager):
|
|
||||||
"""
|
|
||||||
Override user manager to get the related contact in the same query by default (Contact model)
|
|
||||||
"""
|
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
"""Always select the related contact when doing a query on users."""
|
|
||||||
return super().get_queryset().select_related("profile_contact")
|
|
||||||
|
|
||||||
|
|
||||||
class User(AbstractBaseUser, BaseModel, auth_models.PermissionsMixin):
|
class User(AbstractBaseUser, BaseModel, auth_models.PermissionsMixin):
|
||||||
"""User model to work with OIDC only authentication."""
|
"""User model to work with OIDC only authentication."""
|
||||||
|
|
||||||
@@ -202,7 +192,7 @@ class User(AbstractBaseUser, BaseModel, auth_models.PermissionsMixin):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
objects = UserManager()
|
objects = auth_models.UserManager()
|
||||||
|
|
||||||
USERNAME_FIELD = "email"
|
USERNAME_FIELD = "email"
|
||||||
REQUIRED_FIELDS = []
|
REQUIRED_FIELDS = []
|
||||||
|
|||||||
@@ -311,7 +311,6 @@ def test_api_users_retrieve_me_authenticated():
|
|||||||
"timezone": str(user.timezone),
|
"timezone": str(user.timezone),
|
||||||
"is_device": False,
|
"is_device": False,
|
||||||
"is_staff": False,
|
"is_staff": False,
|
||||||
"data": user.profile_contact.data,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user