mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 15:03:34 +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);
|
||||
}
|
||||
|
||||
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 {
|
||||
// If the events system is not running, then it is expected that
|
||||
// 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 bot_data from "./bot_data";
|
||||
import * as browser_history from "./browser_history";
|
||||
import {buddy_list} from "./buddy_list";
|
||||
import * as compose_call from "./compose_call";
|
||||
import * as compose_call_ui from "./compose_call_ui";
|
||||
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);
|
||||
}
|
||||
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:
|
||||
blueslip.error("Unexpected event type realm_user/" + event.op);
|
||||
break;
|
||||
|
||||
@@ -736,6 +736,11 @@ run_test("realm_user", ({override}) => {
|
||||
assert.equal(update_bot_stub.num_calls, 1);
|
||||
args = update_bot_stub.get_args("update_user_id", "update_bot_data");
|
||||
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}) => {
|
||||
|
||||
@@ -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: {
|
||||
type: "realm_user",
|
||||
op: "update",
|
||||
|
||||
Reference in New Issue
Block a user