profiles: get online status if friend
This commit is contained in:
@ -10,10 +10,30 @@ class ProfileSerializer(serializers.ModelSerializer):
|
||||
|
||||
username = serializers.ReadOnlyField(source='user.username')
|
||||
avatar = serializers.ImageField(required=False)
|
||||
online = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = ProfileModel
|
||||
fields = ["username", "avatar", "id"]
|
||||
fields = ["username", "avatar", "id", 'online']
|
||||
|
||||
def get_online(self, obj: ProfileModel):
|
||||
from notice.consumers import notice_manager
|
||||
|
||||
user = None
|
||||
request = self.context.get("request")
|
||||
if request and hasattr(request, "user"):
|
||||
user = request.user
|
||||
|
||||
if user is None:
|
||||
return False
|
||||
|
||||
if user.pk == obj.pk:
|
||||
return True
|
||||
|
||||
if not user.profilemodel.is_friend(obj):
|
||||
return None
|
||||
|
||||
return notice_manager.get_consumer_by_user(obj.user) is not None
|
||||
|
||||
def validate_avatar(self, value):
|
||||
'''
|
||||
|
Reference in New Issue
Block a user