@@ -34,12 +34,12 @@ async def receive(self, text_data):
3434 text_data_json = json .loads (text_data )
3535 if 'message' in text_data_json :
3636 message = text_data_json ['message' ]
37- chat = Chat .objects .get (name = self .room_name )
38- sender = User .objects .get (id = self .user_id )
39- receiver = Chat .objects .get_other_user (chat , sender )
4037
4138 try :
42- self .blocked_or_muted (sender , receiver )
39+ chat = await sync_to_async (Chat .objects .get )(name = self .room_name )
40+ sender = await sync_to_async (User .objects .get )(id = self .user_id )
41+ receiver = await sync_to_async (Chat .objects .get_other_user )(chat , sender )
42+ await self .blocked_or_muted (sender , receiver )
4343
4444 # Try to save the message
4545 username , id , timestamp = await self .save_message (self .user_id , self .room_name , message )
@@ -147,10 +147,16 @@ def save_message(self, id, room_name, content):
147147 chat = Chat .objects .get (name = room_name )
148148 message = Message .objects .create (content = content , chat = chat , sender = user ) # Creates and saves message
149149 return user .username , message .id , message .timestamp
150-
150+
151151 @staticmethod
152- def blocked_or_muted (sender , receiver ):
153- if BlockedUser .objects .filter (blocked_by = receiver .profile , blocked_user = sender .profile ).exists ():
152+ async def blocked_or_muted (sender , receiver ):
153+ sender_profile = await sync_to_async (lambda : sender .profile )()
154+ receiver_profile = await sync_to_async (lambda : receiver .profile )()
155+
156+ blocked = await sync_to_async (BlockedUser .objects .filter (blocked_by = receiver_profile , blocked_user = sender_profile ).exists )()
157+ if blocked :
154158 raise PermissionError ("You are blocked by this user." )
155- if MutedUser .objects .filter (muted_by = receiver .profile , muted_user = sender .profile ).exists ():
156- raise PermissionError ("You are muted by this user." )
159+
160+ muted = await sync_to_async (MutedUser .objects .filter (muted_by = receiver_profile , muted_user = sender_profile ).exists )()
161+ if muted :
162+ raise PermissionError ("You are muted by this user." )
0 commit comments