mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +00:00 
			
		
		
		
	server_events_dispatch: Handle "realm_user/remove" event.
This commit adds code to handle "realm_user/remove" event which is received when a guest loses access to a user.
This commit is contained in:
		@@ -1408,6 +1408,16 @@ export function deactivate(person: User): void {
 | 
				
			|||||||
    non_active_user_dict.set(person.user_id, person);
 | 
					    non_active_user_dict.set(person.user_id, person);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function remove_inaccessible_user(user_id: number): void {
 | 
				
			||||||
 | 
					    // We do not track inaccessible users in active_user_dict.
 | 
				
			||||||
 | 
					    active_user_dict.delete(user_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Create unknown user object for the inaccessible user.
 | 
				
			||||||
 | 
					    const email = "user" + user_id + "@" + page_params.realm_bot_domain;
 | 
				
			||||||
 | 
					    const unknown_user = make_user(user_id, email, INACCESSIBLE_USER_NAME);
 | 
				
			||||||
 | 
					    _add_user(unknown_user);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function report_late_add(user_id: number, email: string): void {
 | 
					export function report_late_add(user_id: number, email: string): void {
 | 
				
			||||||
    // If the events system is not running, then it is expected that
 | 
					    // If the events system is not running, then it is expected that
 | 
				
			||||||
    // we will fetch messages from the server that were sent by users
 | 
					    // we will fetch messages from the server that were sent by users
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import * as audible_notifications from "./audible_notifications";
 | 
				
			|||||||
import * as blueslip from "./blueslip";
 | 
					import * as blueslip from "./blueslip";
 | 
				
			||||||
import * as bot_data from "./bot_data";
 | 
					import * as bot_data from "./bot_data";
 | 
				
			||||||
import * as browser_history from "./browser_history";
 | 
					import * as browser_history from "./browser_history";
 | 
				
			||||||
 | 
					import {buddy_list} from "./buddy_list";
 | 
				
			||||||
import * as compose_call from "./compose_call";
 | 
					import * as compose_call from "./compose_call";
 | 
				
			||||||
import * as compose_call_ui from "./compose_call_ui";
 | 
					import * as compose_call_ui from "./compose_call_ui";
 | 
				
			||||||
import * as compose_pm_pill from "./compose_pm_pill";
 | 
					import * as compose_pm_pill from "./compose_pm_pill";
 | 
				
			||||||
@@ -471,6 +472,16 @@ export function dispatch_normal_event(event) {
 | 
				
			|||||||
                        settings_users.update_bot_data(event.person.user_id);
 | 
					                        settings_users.update_bot_data(event.person.user_id);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 | 
					                case "remove": {
 | 
				
			||||||
 | 
					                    const user_id = event.person.user_id;
 | 
				
			||||||
 | 
					                    people.remove_inaccessible_user(user_id);
 | 
				
			||||||
 | 
					                    buddy_list.maybe_remove_user_id({user_id});
 | 
				
			||||||
 | 
					                    message_live_update.update_user_full_name(
 | 
				
			||||||
 | 
					                        user_id,
 | 
				
			||||||
 | 
					                        people.INACCESSIBLE_USER_NAME,
 | 
				
			||||||
 | 
					                    );
 | 
				
			||||||
 | 
					                    break;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                default:
 | 
					                default:
 | 
				
			||||||
                    blueslip.error("Unexpected event type realm_user/" + event.op);
 | 
					                    blueslip.error("Unexpected event type realm_user/" + event.op);
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -736,6 +736,11 @@ run_test("realm_user", ({override}) => {
 | 
				
			|||||||
    assert.equal(update_bot_stub.num_calls, 1);
 | 
					    assert.equal(update_bot_stub.num_calls, 1);
 | 
				
			||||||
    args = update_bot_stub.get_args("update_user_id", "update_bot_data");
 | 
					    args = update_bot_stub.get_args("update_user_id", "update_bot_data");
 | 
				
			||||||
    assert_same(args.update_user_id, event.person.user_id);
 | 
					    assert_same(args.update_user_id, event.person.user_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    event = event_fixtures.realm_user__remove;
 | 
				
			||||||
 | 
					    dispatch(event);
 | 
				
			||||||
 | 
					    const removed_person = people.get_by_user_id(event.person.user_id);
 | 
				
			||||||
 | 
					    assert.equal(removed_person.full_name, "translated: Unknown user");
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run_test("restart", ({override}) => {
 | 
					run_test("restart", ({override}) => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -563,6 +563,15 @@ exports.fixtures = {
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    realm_user__remove: {
 | 
				
			||||||
 | 
					        type: "realm_user",
 | 
				
			||||||
 | 
					        op: "remove",
 | 
				
			||||||
 | 
					        person: {
 | 
				
			||||||
 | 
					            user_id: test_user.user_id,
 | 
				
			||||||
 | 
					            full_name: "Unknown user",
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    realm_user__update: {
 | 
					    realm_user__update: {
 | 
				
			||||||
        type: "realm_user",
 | 
					        type: "realm_user",
 | 
				
			||||||
        op: "update",
 | 
					        op: "update",
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user