users: Use role value directly to display user role text in frontend.

Since, we now get role value in person objects sent from server, we
can simply user user_role_map to display role in different places
instead of having multiple if-else conditions to check flags like
is_admin, is_guest, etc.
This commit is contained in:
sahil839
2021-04-29 19:19:01 +05:30
committed by Tim Abbott
parent 4f354e28eb
commit 77499589f9
7 changed files with 14 additions and 34 deletions

View File

@@ -40,6 +40,7 @@ const me = {
is_admin: false, is_admin: false,
is_guest: false, is_guest: false,
is_bot: false, is_bot: false,
role: 400,
// no avatar, so client should construct a /avatar/{user_id} URL. // no avatar, so client should construct a /avatar/{user_id} URL.
}; };
@@ -86,6 +87,7 @@ const realm_admin = {
is_admin: true, is_admin: true,
is_guest: false, is_guest: false,
is_bot: false, is_bot: false,
role: 200,
}; };
const guest = { const guest = {
@@ -96,6 +98,7 @@ const guest = {
is_admin: false, is_admin: false,
is_guest: true, is_guest: true,
is_bot: false, is_bot: false,
role: 600,
}; };
const realm_owner = { const realm_owner = {
@@ -106,6 +109,7 @@ const realm_owner = {
is_admin: true, is_admin: true,
is_guest: false, is_guest: false,
is_bot: false, is_bot: false,
role: 100,
}; };
const bot_botson = { const bot_botson = {
@@ -648,6 +652,7 @@ test_people("message_methods", () => {
is_admin: false, is_admin: false,
is_bot: false, is_bot: false,
is_guest: false, is_guest: false,
role: 400,
timezone: "America/Los_Angeles", timezone: "America/Los_Angeles",
user_id: 30, user_id: 30,
}, },

View File

@@ -48,6 +48,7 @@ const alice = {
avatar_version: 5, avatar_version: 5,
is_guest: false, is_guest: false,
is_admin: false, is_admin: false,
role: 400,
}; };
const me = { const me = {

View File

@@ -9,6 +9,7 @@ import {FoldDict} from "./fold_dict";
import {$t} from "./i18n"; import {$t} from "./i18n";
import * as message_user_ids from "./message_user_ids"; import * as message_user_ids from "./message_user_ids";
import * as reload_state from "./reload_state"; import * as reload_state from "./reload_state";
import * as settings_config from "./settings_config";
import * as settings_data from "./settings_data"; import * as settings_data from "./settings_data";
import * as util from "./util"; import * as util from "./util";
@@ -268,17 +269,11 @@ export function get_user_time(user_id) {
export function get_user_type(user_id) { export function get_user_type(user_id) {
const user_profile = get_by_user_id(user_id); const user_profile = get_by_user_id(user_id);
if (user_profile.is_bot) {
if (user_profile.is_owner) {
return $t({defaultMessage: "Owner"});
} else if (user_profile.is_admin) {
return $t({defaultMessage: "Administrator"});
} else if (user_profile.is_guest) {
return $t({defaultMessage: "Guest"});
} else if (user_profile.is_bot) {
return $t({defaultMessage: "Bot"}); return $t({defaultMessage: "Bot"});
} }
return $t({defaultMessage: "Member"});
return settings_config.user_role_map.get(user_profile.role);
} }
export function emails_strings_to_user_ids_string(emails_string) { export function emails_strings_to_user_ids_string(emails_string) {

View File

@@ -110,6 +110,7 @@ export function build_page() {
display_settings: settings_config.get_all_display_settings(), display_settings: settings_config.get_all_display_settings(),
user_can_change_name: settings_data.user_can_change_name(), user_can_change_name: settings_data.user_can_change_name(),
user_can_change_avatar: settings_data.user_can_change_avatar(), user_can_change_avatar: settings_data.user_can_change_avatar(),
user_role_text: people.get_user_type(page_params.user_id),
}); });
$(".settings-box").html(rendered_settings_tab); $(".settings-box").html(rendered_settings_tab);

View File

@@ -239,9 +239,7 @@ function human_info(person) {
const info = {}; const info = {};
info.is_bot = false; info.is_bot = false;
info.is_admin = person.is_admin; info.user_role_text = people.get_user_type(person.user_id);
info.is_guest = person.is_guest;
info.is_owner = person.is_owner;
info.is_active = people.is_person_active(person.user_id); info.is_active = people.is_person_active(person.user_id);
info.user_id = person.user_id; info.user_id = person.user_id;
info.full_name = person.full_name; info.full_name = person.full_name;

View File

@@ -124,17 +124,7 @@
<div class="user-role input-group grid"> <div class="user-role input-group grid">
<label for="user_role" class="inline-block title">{{t "Role" }}</label> <label for="user_role" class="inline-block title">{{t "Role" }}</label>
<span> <span>{{user_role_text}}</span>
{{#if page_params.is_owner}}
{{t "Owner" }}
{{else if page_params.is_admin}}
{{t "Administrator" }}
{{else if page_params.is_guest}}
{{t "Guest" }}
{{else}}
{{t "Member" }}
{{/if}}
</span>
</div> </div>
<form class="deactivate_account grid"> <form class="deactivate_account grid">

View File

@@ -10,17 +10,7 @@
{{/if}} {{/if}}
{{#unless is_bot}} {{#unless is_bot}}
<td> <td>
<span class="user_role"> <span class="user_role">{{user_role_text}}</span>
{{#if is_owner}}
{{t "Owner" }}
{{else if is_admin}}
{{t "Administrator" }}
{{else if is_guest}}
{{t "Guest" }}
{{else}}
{{t "Member" }}
{{/if}}
</span>
</td> </td>
{{/unless}} {{/unless}}
{{#if is_bot}} {{#if is_bot}}