user_events: Update the role field in person object on change of role.

This commit adds code for live updating the role field of person
object on receiving role change event from server and thus enables
live update of role in users list of settings overlay.
This commit is contained in:
sahil839
2021-04-29 22:12:49 +05:30
committed by Tim Abbott
parent 253a935cb2
commit 06547d5c9b
2 changed files with 6 additions and 0 deletions

View File

@@ -83,12 +83,14 @@ run_test("updates", () => {
});
person = people.get_by_email(isaac.email);
assert(person.is_guest);
assert(person.role, settings_config.user_role_values.guest.code);
user_events.update_person({
user_id: isaac.user_id,
role: settings_config.user_role_values.member.code,
});
person = people.get_by_email(isaac.email);
assert(!person.is_guest);
assert(person.role, settings_config.user_role_values.member.code);
user_events.update_person({
user_id: isaac.user_id,
@@ -96,6 +98,7 @@ run_test("updates", () => {
});
person = people.get_by_email(isaac.email);
assert.equal(person.is_moderator, true);
assert(person.role, settings_config.user_role_values.moderator.code);
user_events.update_person({
user_id: isaac.user_id,
@@ -105,6 +108,7 @@ run_test("updates", () => {
assert.equal(person.full_name, "Isaac Newton");
assert.equal(person.is_moderator, false);
assert.equal(person.is_admin, true);
assert(person.role, settings_config.user_role_values.admin.code);
user_events.update_person({
user_id: isaac.user_id,
@@ -112,6 +116,7 @@ run_test("updates", () => {
});
assert.equal(person.is_admin, true);
assert.equal(person.is_owner, true);
assert(person.role, settings_config.user_role_values.owner.code);
let user_id;
let full_name;

View File

@@ -66,6 +66,7 @@ export const update_person = function update(person) {
}
if (Object.prototype.hasOwnProperty.call(person, "role")) {
person_obj.role = person.role;
person_obj.is_owner = person.role === settings_config.user_role_values.owner.code;
person_obj.is_admin =
person.role === settings_config.user_role_values.admin.code || person_obj.is_owner;