mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	user_groups: Add members to the System groups created.
This commit adds users to the appropriate system user group based on their role. We also change the user groups when changing role of the user. We also add migration to add existing users to the appropriate user groups. This commit adds update_users_in_full_members_system_group which is currently used to update the full members group on changing role of a user. This function will be modified in next commit such that it can be used to update full members group on changing waiting_period_threshold setting of realm.
This commit is contained in:
		@@ -57,6 +57,8 @@ from zerver.models import (
 | 
			
		||||
    Service,
 | 
			
		||||
    Stream,
 | 
			
		||||
    Subscription,
 | 
			
		||||
    UserGroup,
 | 
			
		||||
    UserGroupMembership,
 | 
			
		||||
    UserMessage,
 | 
			
		||||
    UserPresence,
 | 
			
		||||
    UserProfile,
 | 
			
		||||
@@ -486,6 +488,25 @@ class Command(BaseCommand):
 | 
			
		||||
            assign_time_zone_by_delivery_email("shiva@zulip.com", "Asia/Kolkata")  # India
 | 
			
		||||
            assign_time_zone_by_delivery_email("cordelia@zulip.com", "UTC")
 | 
			
		||||
 | 
			
		||||
            users = UserProfile.objects.filter(realm=zulip_realm)
 | 
			
		||||
            # All users in development environment are full members initially because
 | 
			
		||||
            # waiting period threshold is 0. Groups of Iago, Dedemona, Shiva and
 | 
			
		||||
            # Polonius will be updated according to their role in do_change_user_role.
 | 
			
		||||
            full_members_user_group = UserGroup.objects.get(
 | 
			
		||||
                realm=zulip_realm, name="@role:fullmembers", is_system_group=True
 | 
			
		||||
            )
 | 
			
		||||
            members_user_group = UserGroup.objects.get(
 | 
			
		||||
                realm=zulip_realm, name="@role:members", is_system_group=True
 | 
			
		||||
            )
 | 
			
		||||
            user_group_memberships = []
 | 
			
		||||
            for user_profile in list(users):
 | 
			
		||||
                for group in [full_members_user_group, members_user_group]:
 | 
			
		||||
                    user_group_membership = UserGroupMembership(
 | 
			
		||||
                        user_group=group, user_profile=user_profile
 | 
			
		||||
                    )
 | 
			
		||||
                    user_group_memberships.append(user_group_membership)
 | 
			
		||||
            UserGroupMembership.objects.bulk_create(user_group_memberships)
 | 
			
		||||
 | 
			
		||||
            iago = get_user_by_delivery_email("iago@zulip.com", zulip_realm)
 | 
			
		||||
            do_change_user_role(iago, UserProfile.ROLE_REALM_ADMINISTRATOR, acting_user=None)
 | 
			
		||||
            iago.is_staff = True
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user