mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	models: Add SUBSCRIPTION_DEACTIVATED event type constant to RealmAuditLog.
This commit is contained in:
		@@ -2695,7 +2695,7 @@ def bulk_remove_subscriptions(users: Iterable[UserProfile],
 | 
				
			|||||||
                                                   modified_user=sub.user_profile,
 | 
					                                                   modified_user=sub.user_profile,
 | 
				
			||||||
                                                   modified_stream=stream,
 | 
					                                                   modified_stream=stream,
 | 
				
			||||||
                                                   event_last_message_id=event_last_message_id,
 | 
					                                                   event_last_message_id=event_last_message_id,
 | 
				
			||||||
                                                   event_type='subscription_deactivated',
 | 
					                                                   event_type=RealmAuditLog.SUBSCRIPTION_DEACTIVATED,
 | 
				
			||||||
                                                   event_time=event_time))
 | 
					                                                   event_time=event_time))
 | 
				
			||||||
    # Now since we have all log objects generated we can do a bulk insert
 | 
					    # Now since we have all log objects generated we can do a bulk insert
 | 
				
			||||||
    RealmAuditLog.objects.bulk_create(all_subscription_logs)
 | 
					    RealmAuditLog.objects.bulk_create(all_subscription_logs)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,7 +31,7 @@ def filter_by_subscription_history(user_profile: UserProfile,
 | 
				
			|||||||
        for log_entry in stream_subscription_logs:
 | 
					        for log_entry in stream_subscription_logs:
 | 
				
			||||||
            if len(stream_messages) == 0:
 | 
					            if len(stream_messages) == 0:
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
            if log_entry.event_type == 'subscription_deactivated':
 | 
					            if log_entry.event_type == RealmAuditLog.SUBSCRIPTION_DEACTIVATED:
 | 
				
			||||||
                for stream_message in stream_messages:
 | 
					                for stream_message in stream_messages:
 | 
				
			||||||
                    if stream_message['id'] <= log_entry.event_last_message_id:
 | 
					                    if stream_message['id'] <= log_entry.event_last_message_id:
 | 
				
			||||||
                        store_user_message_to_insert(stream_message)
 | 
					                        store_user_message_to_insert(stream_message)
 | 
				
			||||||
@@ -105,7 +105,7 @@ def add_missing_messages(user_profile: UserProfile) -> None:
 | 
				
			|||||||
    # For Stream messages we need to check messages against data from
 | 
					    # For Stream messages we need to check messages against data from
 | 
				
			||||||
    # RealmAuditLog for visibility to user. So we fetch the subscription logs.
 | 
					    # RealmAuditLog for visibility to user. So we fetch the subscription logs.
 | 
				
			||||||
    stream_ids = [sub['recipient__type_id'] for sub in all_stream_subs]
 | 
					    stream_ids = [sub['recipient__type_id'] for sub in all_stream_subs]
 | 
				
			||||||
    events = [RealmAuditLog.SUBSCRIPTION_CREATED, 'subscription_deactivated', 'subscription_activated']
 | 
					    events = [RealmAuditLog.SUBSCRIPTION_CREATED, RealmAuditLog.SUBSCRIPTION_DEACTIVATED, 'subscription_activated']
 | 
				
			||||||
    subscription_logs = list(RealmAuditLog.objects.select_related(
 | 
					    subscription_logs = list(RealmAuditLog.objects.select_related(
 | 
				
			||||||
        'modified_stream').filter(
 | 
					        'modified_stream').filter(
 | 
				
			||||||
        modified_user=user_profile,
 | 
					        modified_user=user_profile,
 | 
				
			||||||
@@ -119,7 +119,7 @@ def add_missing_messages(user_profile: UserProfile) -> None:
 | 
				
			|||||||
    recipient_ids = []
 | 
					    recipient_ids = []
 | 
				
			||||||
    for sub in all_stream_subs:
 | 
					    for sub in all_stream_subs:
 | 
				
			||||||
        stream_subscription_logs = all_stream_subscription_logs[sub['recipient__type_id']]
 | 
					        stream_subscription_logs = all_stream_subscription_logs[sub['recipient__type_id']]
 | 
				
			||||||
        if stream_subscription_logs[-1].event_type == 'subscription_deactivated':
 | 
					        if stream_subscription_logs[-1].event_type == RealmAuditLog.SUBSCRIPTION_DEACTIVATED:
 | 
				
			||||||
            assert stream_subscription_logs[-1].event_last_message_id is not None
 | 
					            assert stream_subscription_logs[-1].event_last_message_id is not None
 | 
				
			||||||
            if stream_subscription_logs[-1].event_last_message_id <= user_profile.last_active_message_id:
 | 
					            if stream_subscription_logs[-1].event_last_message_id <= user_profile.last_active_message_id:
 | 
				
			||||||
                # We are going to short circuit this iteration as its no use
 | 
					                # We are going to short circuit this iteration as its no use
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1978,6 +1978,7 @@ class RealmAuditLog(models.Model):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    BOT_OWNER_CHANGED = 'bot_owner_changed'
 | 
					    BOT_OWNER_CHANGED = 'bot_owner_changed'
 | 
				
			||||||
    SUBSCRIPTION_CREATED = 'subscription_created'
 | 
					    SUBSCRIPTION_CREATED = 'subscription_created'
 | 
				
			||||||
 | 
					    SUBSCRIPTION_DEACTIVATED = 'subscription_deactivated'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    event_type = models.CharField(max_length=40)  # type: str
 | 
					    event_type = models.CharField(max_length=40)  # type: str
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -113,7 +113,7 @@ class TestRealmAuditLog(ZulipTestCase):
 | 
				
			|||||||
        self.assertEqual(subscription_creation_logs[0].modified_user, user[0])
 | 
					        self.assertEqual(subscription_creation_logs[0].modified_user, user[0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        bulk_remove_subscriptions(user, stream)
 | 
					        bulk_remove_subscriptions(user, stream)
 | 
				
			||||||
        subscription_deactivation_logs = RealmAuditLog.objects.filter(event_type='subscription_deactivated',
 | 
					        subscription_deactivation_logs = RealmAuditLog.objects.filter(event_type=RealmAuditLog.SUBSCRIPTION_DEACTIVATED,
 | 
				
			||||||
                                                                      event_time__gte=now)
 | 
					                                                                      event_time__gte=now)
 | 
				
			||||||
        self.assertEqual(subscription_deactivation_logs.count(), 1)
 | 
					        self.assertEqual(subscription_deactivation_logs.count(), 1)
 | 
				
			||||||
        self.assertEqual(subscription_deactivation_logs[0].modified_stream.id, stream[0].id)
 | 
					        self.assertEqual(subscription_deactivation_logs[0].modified_stream.id, stream[0].id)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user