From 06547d5c9b789fb907d01b564305709284b8c8a5 Mon Sep 17 00:00:00 2001 From: sahil839 Date: Thu, 29 Apr 2021 22:12:49 +0530 Subject: [PATCH] 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. --- frontend_tests/node_tests/user_events.js | 5 +++++ static/js/user_events.js | 1 + 2 files changed, 6 insertions(+) diff --git a/frontend_tests/node_tests/user_events.js b/frontend_tests/node_tests/user_events.js index 5b821a7df9..20a366a064 100644 --- a/frontend_tests/node_tests/user_events.js +++ b/frontend_tests/node_tests/user_events.js @@ -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; diff --git a/static/js/user_events.js b/static/js/user_events.js index c2d5cbbb1d..447995c160 100644 --- a/static/js/user_events.js +++ b/static/js/user_events.js @@ -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;