mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
people.js: Add non_active_user_dict bucket.
This commit is contained in:
committed by
Tim Abbott
parent
aae7c79c00
commit
de00c3cd6a
@@ -251,6 +251,7 @@ run_test('basics', () => {
|
||||
people.deactivate(isaac);
|
||||
person = people.get_active_user_for_email(email);
|
||||
assert(!person);
|
||||
assert.equal(people.get_non_active_humans().length, 1);
|
||||
assert.equal(people.get_active_human_count(), 1);
|
||||
assert.equal(people.is_active_user_for_popover(isaac.user_id), false);
|
||||
assert.equal(people.is_valid_email_for_compose(isaac.email), false);
|
||||
|
||||
@@ -8,6 +8,7 @@ let people_dict;
|
||||
let people_by_name_dict;
|
||||
let people_by_user_id_dict;
|
||||
let active_user_dict;
|
||||
let non_active_user_dict;
|
||||
let cross_realm_dict;
|
||||
let pm_recipient_count_dict;
|
||||
let duplicate_full_name_data;
|
||||
@@ -28,6 +29,7 @@ exports.init = function () {
|
||||
// in our realm, but it excludes non-active users and
|
||||
// cross-realm bots.
|
||||
active_user_dict = new Map();
|
||||
non_active_user_dict = new Map();
|
||||
cross_realm_dict = new Map(); // keyed by user_id
|
||||
pm_recipient_count_dict = new Map();
|
||||
|
||||
@@ -733,6 +735,18 @@ exports.get_active_humans = function () {
|
||||
return humans;
|
||||
};
|
||||
|
||||
exports.get_non_active_humans = function () {
|
||||
const humans = [];
|
||||
|
||||
for (const user of non_active_user_dict.values()) {
|
||||
if (!user.is_bot) {
|
||||
humans.push(user);
|
||||
}
|
||||
}
|
||||
|
||||
return humans;
|
||||
};
|
||||
|
||||
exports.get_active_human_count = function () {
|
||||
let count = 0;
|
||||
for (const person of active_user_dict.values()) {
|
||||
@@ -748,6 +762,10 @@ exports.get_active_user_ids = function () {
|
||||
return Array.from(active_user_dict.keys());
|
||||
};
|
||||
|
||||
exports.get_non_active_realm_users = function () {
|
||||
return Array.from(non_active_user_dict.values());
|
||||
};
|
||||
|
||||
exports.is_cross_realm_email = function (email) {
|
||||
const person = exports.get_by_email(email);
|
||||
if (!person) {
|
||||
@@ -1046,6 +1064,15 @@ exports._add_user = function add(person) {
|
||||
exports.add_active_user = function (person) {
|
||||
active_user_dict.set(person.user_id, person);
|
||||
exports._add_user(person);
|
||||
non_active_user_dict.delete(person.user_id);
|
||||
};
|
||||
|
||||
exports.is_person_active = (user_id) => {
|
||||
if (!people_by_user_id_dict.has(user_id)) {
|
||||
blueslip.error("No user found.", user_id);
|
||||
}
|
||||
|
||||
return active_user_dict.has(user_id);
|
||||
};
|
||||
|
||||
exports.add_cross_realm_user = function (person) {
|
||||
@@ -1060,6 +1087,7 @@ exports.deactivate = function (person) {
|
||||
// structures, because deactivated users can be part
|
||||
// of somebody's PM list.
|
||||
active_user_dict.delete(person.user_id);
|
||||
non_active_user_dict.set(person.user_id, person);
|
||||
};
|
||||
|
||||
exports.report_late_add = function (user_id, email) {
|
||||
@@ -1245,6 +1273,7 @@ exports.initialize = function (my_user_id, params) {
|
||||
}
|
||||
|
||||
for (const person of params.realm_non_active_users) {
|
||||
non_active_user_dict.set(person.user_id, person);
|
||||
exports._add_user(person);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user