diff --git a/frappe/core/page/permission_manager/permission_manager.js b/frappe/core/page/permission_manager/permission_manager.js index 129f1aea4a..09b400ae9b 100644 --- a/frappe/core/page/permission_manager/permission_manager.js +++ b/frappe/core/page/permission_manager/permission_manager.js @@ -344,23 +344,68 @@ frappe.PermissionEngine = class PermissionEngine { .find("a") .attr("data-role", role) .click(function () { - let role = $(this).attr("data-role"); + const role = $(this).attr("data-role"); frappe.call({ module: "frappe.core", page: "permission_manager", method: "get_users_with_role", - args: { - role: role, - }, + args: { role }, callback: function (r) { - r.message = $.map(r.message, function (p) { - return $.format('{1}', [p, p]); + let message_html = ""; + + const role_label = __(role); + const users = (r.message || []).filter(Boolean); + const user_count = users.length; + const display_count = Math.min(user_count, 5); + + if (user_count === 0) { + message_html = __("No user has the role {0}", [ + role_label, + ]); + } else { + const user_text = user_count === 1 ? __("User") : __("Users"); + const display_users = users.slice(0, display_count); + + const user_list = display_users + .map( + (user) => + `