mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 19:31:58 +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);
|
people.deactivate(isaac);
|
||||||
person = people.get_active_user_for_email(email);
|
person = people.get_active_user_for_email(email);
|
||||||
assert(!person);
|
assert(!person);
|
||||||
|
assert.equal(people.get_non_active_humans().length, 1);
|
||||||
assert.equal(people.get_active_human_count(), 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_active_user_for_popover(isaac.user_id), false);
|
||||||
assert.equal(people.is_valid_email_for_compose(isaac.email), 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_name_dict;
|
||||||
let people_by_user_id_dict;
|
let people_by_user_id_dict;
|
||||||
let active_user_dict;
|
let active_user_dict;
|
||||||
|
let non_active_user_dict;
|
||||||
let cross_realm_dict;
|
let cross_realm_dict;
|
||||||
let pm_recipient_count_dict;
|
let pm_recipient_count_dict;
|
||||||
let duplicate_full_name_data;
|
let duplicate_full_name_data;
|
||||||
@@ -28,6 +29,7 @@ exports.init = function () {
|
|||||||
// in our realm, but it excludes non-active users and
|
// in our realm, but it excludes non-active users and
|
||||||
// cross-realm bots.
|
// cross-realm bots.
|
||||||
active_user_dict = new Map();
|
active_user_dict = new Map();
|
||||||
|
non_active_user_dict = new Map();
|
||||||
cross_realm_dict = new Map(); // keyed by user_id
|
cross_realm_dict = new Map(); // keyed by user_id
|
||||||
pm_recipient_count_dict = new Map();
|
pm_recipient_count_dict = new Map();
|
||||||
|
|
||||||
@@ -733,6 +735,18 @@ exports.get_active_humans = function () {
|
|||||||
return humans;
|
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 () {
|
exports.get_active_human_count = function () {
|
||||||
let count = 0;
|
let count = 0;
|
||||||
for (const person of active_user_dict.values()) {
|
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());
|
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) {
|
exports.is_cross_realm_email = function (email) {
|
||||||
const person = exports.get_by_email(email);
|
const person = exports.get_by_email(email);
|
||||||
if (!person) {
|
if (!person) {
|
||||||
@@ -1046,6 +1064,15 @@ exports._add_user = function add(person) {
|
|||||||
exports.add_active_user = function (person) {
|
exports.add_active_user = function (person) {
|
||||||
active_user_dict.set(person.user_id, person);
|
active_user_dict.set(person.user_id, person);
|
||||||
exports._add_user(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) {
|
exports.add_cross_realm_user = function (person) {
|
||||||
@@ -1060,6 +1087,7 @@ exports.deactivate = function (person) {
|
|||||||
// structures, because deactivated users can be part
|
// structures, because deactivated users can be part
|
||||||
// of somebody's PM list.
|
// of somebody's PM list.
|
||||||
active_user_dict.delete(person.user_id);
|
active_user_dict.delete(person.user_id);
|
||||||
|
non_active_user_dict.set(person.user_id, person);
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.report_late_add = function (user_id, email) {
|
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) {
|
for (const person of params.realm_non_active_users) {
|
||||||
|
non_active_user_dict.set(person.user_id, person);
|
||||||
exports._add_user(person);
|
exports._add_user(person);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user