mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	user_group: Confirm before joining a group they're part of via subgroup.
Fixes #32484.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							bf73e1711d
						
					
				
				
					commit
					c57db30909
				
			@@ -1,6 +1,7 @@
 | 
			
		||||
import $ from "jquery";
 | 
			
		||||
 | 
			
		||||
import render_confirm_delete_user from "../templates/confirm_dialog/confirm_delete_user.hbs";
 | 
			
		||||
import render_confirm_join_group_direct_member from "../templates/confirm_dialog/confirm_join_group_direct_member.hbs";
 | 
			
		||||
import render_group_info_banner from "../templates/modal_banner/user_group_info_banner.hbs";
 | 
			
		||||
import render_browse_user_groups_list_item from "../templates/user_group_settings/browse_user_groups_list_item.hbs";
 | 
			
		||||
import render_cannot_deactivate_group_banner from "../templates/user_group_settings/cannot_deactivate_group_banner.hbs";
 | 
			
		||||
@@ -1139,8 +1140,35 @@ export function initialize() {
 | 
			
		||||
 | 
			
		||||
        const user_group_id = get_user_group_id(e.target);
 | 
			
		||||
        const user_group = user_groups.get_user_group_from_id(user_group_id);
 | 
			
		||||
        const is_member = user_groups.is_user_in_group(user_group_id, people.my_current_user_id());
 | 
			
		||||
        const is_direct_member = user_groups.is_direct_member_of(
 | 
			
		||||
            people.my_current_user_id(),
 | 
			
		||||
            user_group_id,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        if (is_member && !is_direct_member) {
 | 
			
		||||
            const associated_subgroups = user_groups.get_associated_subgroups(
 | 
			
		||||
                user_group,
 | 
			
		||||
                people.my_current_user_id(),
 | 
			
		||||
            );
 | 
			
		||||
            const associated_subgroup_names =
 | 
			
		||||
                user_groups.group_list_to_comma_seperated_name(associated_subgroups);
 | 
			
		||||
 | 
			
		||||
            confirm_dialog.launch({
 | 
			
		||||
                html_heading: $t_html({defaultMessage: "Join group?"}),
 | 
			
		||||
                html_body: render_confirm_join_group_direct_member({
 | 
			
		||||
                    associated_subgroup_names,
 | 
			
		||||
                }),
 | 
			
		||||
                id: "confirm_join_group_direct_member",
 | 
			
		||||
                on_click() {
 | 
			
		||||
                    const $group_row = row_for_group_id(user_group_id);
 | 
			
		||||
                    add_or_remove_from_group(user_group, $group_row);
 | 
			
		||||
                },
 | 
			
		||||
            });
 | 
			
		||||
        } else {
 | 
			
		||||
            const $group_row = row_for_group_id(user_group_id);
 | 
			
		||||
            add_or_remove_from_group(user_group, $group_row);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $("#groups_overlay_container").on(
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,4 @@
 | 
			
		||||
<p>
 | 
			
		||||
    {{t "You are already a member of this group because you are a member of a subgroup"}} (<b>{{associated_subgroup_names}}</b>).
 | 
			
		||||
    {{t "Are you sure you want to join it directly as well?" }}
 | 
			
		||||
</p>
 | 
			
		||||
		Reference in New Issue
	
	Block a user