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