set user data in get users response
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
from apps.authorization.api.v1.serializers import UserRelationSerializer
|
||||
from apps.authorization.api.v1.serializers import (
|
||||
UserRelationSerializer,
|
||||
PermissionSerializer,
|
||||
RoleSerializer
|
||||
)
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import serializers
|
||||
from apps.authentication.models import (
|
||||
@@ -59,6 +63,22 @@ class BankAccountSerializer(serializers.ModelSerializer):
|
||||
return instance
|
||||
|
||||
|
||||
class UserDataRelationSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = authorize_models.UserRelations
|
||||
fields = '__all__'
|
||||
|
||||
def to_representation(self, instance):
|
||||
representation = super().to_representation(instance)
|
||||
representation['role'] = RoleSerializer(instance.role).data
|
||||
representation['organization'] = instance.organization.name
|
||||
representation['permissions'] = PermissionSerializer().permissions_structure_output(
|
||||
instance.permissions.all()
|
||||
)
|
||||
|
||||
return representation
|
||||
|
||||
|
||||
class UserSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = User
|
||||
@@ -82,6 +102,19 @@ class UserSerializer(serializers.ModelSerializer):
|
||||
'otp_status',
|
||||
]
|
||||
|
||||
def to_representation(self, instance):
|
||||
representation = super().to_representation(instance)
|
||||
if authorize_models.UserRelations.objects.filter(user=instance).exists():
|
||||
representation['relation_data'] = UserDataRelationSerializer(
|
||||
authorize_models.UserRelations.objects.filter(user=instance).first()
|
||||
).data
|
||||
if instance.bank_information.all():
|
||||
representation['bank_account'] = BankAccountSerializer(
|
||||
instance.bank_information.all(), many=True
|
||||
).data
|
||||
|
||||
return representation
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
""" update user instance """
|
||||
instance.username = validated_data.get('username', instance.username)
|
||||
|
||||
Reference in New Issue
Block a user