mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	message: Refactor has_message_access parameters.
This commit is contained in:
		@@ -671,7 +671,7 @@ def access_message(
 | 
			
		||||
 | 
			
		||||
    user_message = get_usermessage_by_message_id(user_profile, message_id)
 | 
			
		||||
 | 
			
		||||
    if has_message_access(user_profile, message, user_message):
 | 
			
		||||
    if has_message_access(user_profile, message, has_user_message=user_message is not None):
 | 
			
		||||
        return (message, user_message)
 | 
			
		||||
    raise JsonableError(_("Invalid message(s)"))
 | 
			
		||||
 | 
			
		||||
@@ -679,8 +679,8 @@ def access_message(
 | 
			
		||||
def has_message_access(
 | 
			
		||||
    user_profile: UserProfile,
 | 
			
		||||
    message: Message,
 | 
			
		||||
    user_message: Optional[UserMessage],
 | 
			
		||||
    *,
 | 
			
		||||
    has_user_message: bool,
 | 
			
		||||
    stream: Optional[Stream] = None,
 | 
			
		||||
    is_subscribed: Optional[bool] = None,
 | 
			
		||||
) -> bool:
 | 
			
		||||
@@ -693,7 +693,7 @@ def has_message_access(
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    # If you have a user_message object, you have access.
 | 
			
		||||
    if user_message is not None:
 | 
			
		||||
    if has_user_message:
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
    if message.recipient.type != Recipient.STREAM:
 | 
			
		||||
@@ -731,7 +731,7 @@ def bulk_access_messages(user_profile: UserProfile, messages: Sequence[Message])
 | 
			
		||||
 | 
			
		||||
    for message in messages:
 | 
			
		||||
        user_message = get_usermessage_by_message_id(user_profile, message.id)
 | 
			
		||||
        if has_message_access(user_profile, message, user_message):
 | 
			
		||||
        if has_message_access(user_profile, message, has_user_message=user_message is not None):
 | 
			
		||||
            filtered_messages.append(message)
 | 
			
		||||
    return filtered_messages
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1359,18 +1359,27 @@ class EditMessageTest(ZulipTestCase):
 | 
			
		||||
            user_profile, old_stream.name, topic_name="test", content="fourth"
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(guest_user, Message.objects.get(id=msg_id_to_test_acesss), None),
 | 
			
		||||
            True,
 | 
			
		||||
        )
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                guest_user, Message.objects.get(id=msg_id_to_test_acesss), None, stream=old_stream
 | 
			
		||||
                guest_user, Message.objects.get(id=msg_id_to_test_acesss), has_user_message=False
 | 
			
		||||
            ),
 | 
			
		||||
            True,
 | 
			
		||||
        )
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(non_guest_user, Message.objects.get(id=msg_id_to_test_acesss), None),
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                guest_user,
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
                stream=old_stream,
 | 
			
		||||
            ),
 | 
			
		||||
            True,
 | 
			
		||||
        )
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                non_guest_user,
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
            ),
 | 
			
		||||
            True,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
@@ -1386,11 +1395,19 @@ class EditMessageTest(ZulipTestCase):
 | 
			
		||||
        self.assert_json_success(result)
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(guest_user, Message.objects.get(id=msg_id_to_test_acesss), None),
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                guest_user,
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
            ),
 | 
			
		||||
            False,
 | 
			
		||||
        )
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(non_guest_user, Message.objects.get(id=msg_id_to_test_acesss), None),
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                non_guest_user,
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
            ),
 | 
			
		||||
            True,
 | 
			
		||||
        )
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
@@ -1400,7 +1417,7 @@ class EditMessageTest(ZulipTestCase):
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                guest_user,
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                None,
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
                stream=new_stream,
 | 
			
		||||
                is_subscribed=True,
 | 
			
		||||
            ),
 | 
			
		||||
@@ -1409,14 +1426,20 @@ class EditMessageTest(ZulipTestCase):
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                guest_user, Message.objects.get(id=msg_id_to_test_acesss), None, stream=new_stream
 | 
			
		||||
                guest_user,
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
                stream=new_stream,
 | 
			
		||||
            ),
 | 
			
		||||
            False,
 | 
			
		||||
        )
 | 
			
		||||
        with self.assertRaises(AssertionError):
 | 
			
		||||
            # Raises assertion if you pass an invalid stream.
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                guest_user, Message.objects.get(id=msg_id_to_test_acesss), None, stream=old_stream
 | 
			
		||||
                guest_user,
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
                stream=old_stream,
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
@@ -1428,7 +1451,9 @@ class EditMessageTest(ZulipTestCase):
 | 
			
		||||
        )
 | 
			
		||||
        self.assertEqual(
 | 
			
		||||
            has_message_access(
 | 
			
		||||
                self.example_user("iago"), Message.objects.get(id=msg_id_to_test_acesss), None
 | 
			
		||||
                self.example_user("iago"),
 | 
			
		||||
                Message.objects.get(id=msg_id_to_test_acesss),
 | 
			
		||||
                has_user_message=False,
 | 
			
		||||
            ),
 | 
			
		||||
            True,
 | 
			
		||||
        )
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user