mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 04:52:12 +00:00
user_profile: Disable role dropdown for only owner.
This commit adds code to disable the role dropdown when an owner is editing their own profile and they are the only owner in the organization and a tooltip is shown mentioning that. We already keep the role dropdown disabled when an admin user was managing an owner's profile. Fixes #34830.
This commit is contained in:
committed by
Tim Abbott
parent
e10f1ef260
commit
2378d7700b
@@ -1112,6 +1112,20 @@ function toggle_submit_button($edit_form: JQuery): void {
|
||||
$submit_button.prop("disabled", false);
|
||||
}
|
||||
|
||||
export function disable_user_role_dropdown_if_needed(user: User): void {
|
||||
if (user.is_owner && people.is_current_user_only_owner()) {
|
||||
ui_util.disable_element_and_add_tooltip(
|
||||
$("#user-role-select"),
|
||||
"Because you are the only organization owner, you cannot change your role.",
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (user.is_owner && !current_user.is_owner) {
|
||||
$("#user-role-select").prop("disabled", true);
|
||||
}
|
||||
}
|
||||
|
||||
export function show_edit_user_info_modal(user_id: number, $container: JQuery): void {
|
||||
const person = people.maybe_get_user_by_id(user_id);
|
||||
const is_active = people.is_person_active(user_id);
|
||||
@@ -1127,7 +1141,6 @@ export function show_edit_user_info_modal(user_id: number, $container: JQuery):
|
||||
email: person.delivery_email,
|
||||
full_name: person.full_name,
|
||||
user_role_values: settings_config.user_role_values,
|
||||
disable_role_dropdown: person.is_owner && !current_user.is_owner,
|
||||
is_active,
|
||||
hide_deactivate_button,
|
||||
max_user_name_length: people.MAX_USER_NAME_LENGTH,
|
||||
@@ -1143,6 +1156,7 @@ export function show_edit_user_info_modal(user_id: number, $container: JQuery):
|
||||
)
|
||||
.hide();
|
||||
}
|
||||
disable_user_role_dropdown_if_needed(person);
|
||||
|
||||
const custom_profile_field_form_selector = "#edit-user-form .custom-profile-field-form";
|
||||
$(custom_profile_field_form_selector).empty();
|
||||
|
@@ -20,7 +20,7 @@
|
||||
<label for="user-role-select" class="modal-field-label">{{t 'User role' }}
|
||||
{{> ../help_link_widget link="/help/user-roles" }}
|
||||
</label>
|
||||
<select name="user-role-select" class="bootstrap-focus-style modal_select" id="user-role-select" data-setting-widget-type="number" {{#if disable_role_dropdown}}disabled{{/if}}>
|
||||
<select name="user-role-select" class="bootstrap-focus-style modal_select" id="user-role-select" data-setting-widget-type="number">
|
||||
{{> dropdown_options_widget option_values=user_role_values}}
|
||||
</select>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user