mirror of
https://github.com/zulip/zulip.git
synced 2025-11-11 09:27:43 +00:00
Add UI for admins to add/remove admin power from other users.
(imported from commit b7e81316f1f1e3c7b7f7dd5dac5db8e70f1ee209)
This commit is contained in:
@@ -24,6 +24,7 @@ function populate_users (realm_people_data) {
|
|||||||
var deactivated_users = [];
|
var deactivated_users = [];
|
||||||
var bots = [];
|
var bots = [];
|
||||||
_.each(realm_people_data.members, function (user) {
|
_.each(realm_people_data.members, function (user) {
|
||||||
|
user.is_active_human = user.is_active && !user.is_bot;
|
||||||
if (user.is_bot) {
|
if (user.is_bot) {
|
||||||
bots.push(user);
|
bots.push(user);
|
||||||
} else if (user.is_active) {
|
} else if (user.is_active) {
|
||||||
@@ -148,6 +149,74 @@ exports.setup_page = function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$(".admin_user_table").on("click", ".make-admin", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
|
// Go up the tree until we find the user row, then grab the email element
|
||||||
|
$(".active_user_row").removeClass("active_user_row");
|
||||||
|
$(e.target).closest(".user_row").addClass("active_user_row");
|
||||||
|
var email = $(".active_user_row").find('.email').text();
|
||||||
|
|
||||||
|
var url = "/json/users/" + email;
|
||||||
|
var data = {
|
||||||
|
is_admin: JSON.stringify(true)
|
||||||
|
};
|
||||||
|
|
||||||
|
channel.patch({
|
||||||
|
url: url,
|
||||||
|
data: data,
|
||||||
|
success: function () {
|
||||||
|
var row = $(".active_user_row");
|
||||||
|
var button = $(".active_user_row button.make-admin");
|
||||||
|
button.addClass("btn-danger");
|
||||||
|
button.removeClass("btn-warning");
|
||||||
|
button.addClass("remove-admin");
|
||||||
|
button.removeClass("make-admin");
|
||||||
|
button.text("Remove admin");
|
||||||
|
row.removeClass("inactive_user_row");
|
||||||
|
},
|
||||||
|
error: function (xhr, error) {
|
||||||
|
var status = $(".active_user_row .admin-user-status");
|
||||||
|
ui.report_error("Failed!", xhr, status);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".admin_user_table").on("click", ".remove-admin", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
|
// Go up the tree until we find the user row, then grab the email element
|
||||||
|
$(".active_user_row").removeClass("active_user_row");
|
||||||
|
$(e.target).closest(".user_row").addClass("active_user_row");
|
||||||
|
var email = $(".active_user_row").find('.email').text();
|
||||||
|
|
||||||
|
var url = "/json/users/" + email;
|
||||||
|
var data = {
|
||||||
|
is_admin: JSON.stringify(false)
|
||||||
|
};
|
||||||
|
|
||||||
|
channel.patch({
|
||||||
|
url: url,
|
||||||
|
data: data,
|
||||||
|
success: function () {
|
||||||
|
var row = $(".active_user_row");
|
||||||
|
var button = $(".active_user_row button.remove-admin");
|
||||||
|
button.addClass("btn-warning");
|
||||||
|
button.removeClass("btn-danger");
|
||||||
|
button.addClass("make-admin");
|
||||||
|
button.removeClass("remove-admin");
|
||||||
|
button.text("Make admin");
|
||||||
|
row.removeClass("inactive_user_row");
|
||||||
|
},
|
||||||
|
error: function (xhr, error) {
|
||||||
|
var status = $(".active_user_row .admin-user-status");
|
||||||
|
ui.report_error("Failed!", xhr, status);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
$("#do_deactivate_user_button").click(function (e) {
|
$("#do_deactivate_user_button").click(function (e) {
|
||||||
if ($("#deactivation_user_modal .email").html() !== $(".active_user_row").find('.email').text()) {
|
if ($("#deactivation_user_modal .email").html() !== $(".active_user_row").find('.email').text()) {
|
||||||
blueslip.error("User deactivation canceled due to non-matching fields.");
|
blueslip.error("User deactivation canceled due to non-matching fields.");
|
||||||
|
|||||||
@@ -21,6 +21,19 @@
|
|||||||
Reactivate
|
Reactivate
|
||||||
</button>
|
</button>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
{{#if is_active_human}}
|
||||||
|
{{#if is_admin}}
|
||||||
|
<button class="btn remove-admin btn-danger">
|
||||||
|
Remove admin
|
||||||
|
</button>
|
||||||
|
{{else}}
|
||||||
|
<button class="btn make-admin btn-warning">
|
||||||
|
Make admin
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
||||||
|
{{/if}}
|
||||||
|
<div class='admin-user-status'>
|
||||||
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{{/with}}
|
{{/with}}
|
||||||
|
|||||||
Reference in New Issue
Block a user