diff --git a/frappe/core/doctype/user/user.js b/frappe/core/doctype/user/user.js
index ac443c8d69..dbe9be60c1 100644
--- a/frappe/core/doctype/user/user.js
+++ b/frappe/core/doctype/user/user.js
@@ -22,11 +22,11 @@ frappe.ui.form.on('User', {
if(!frm.roles_editor) {
var role_area = $('
')
.appendTo(frm.fields_dict.roles_html.wrapper);
- frm.roles_editor = new frappe.RoleEditor(role_area, frm);
+ frm.roles_editor = new frappe.RoleEditor(role_area, frm, frm.doc.role_profile_name ? 1 : 0);
var module_area = $('
')
.appendTo(frm.fields_dict.modules_html.wrapper);
- frm.module_editor = new frappe.ModuleEditor(frm, module_area)
+ frm.module_editor = new frappe.ModuleEditor(frm, module_area);
} else {
frm.roles_editor.show();
}
@@ -89,7 +89,11 @@ frappe.ui.form.on('User', {
frm.trigger('enabled');
- frm.roles_editor && frm.roles_editor.show();
+ if (frm.roles_editor) {
+ frm.roles_editor.disabled = frm.doc.role_profile_name ? 1 : 0;
+ frm.roles_editor.show();
+ }
+
frm.module_editor && frm.module_editor.refresh();
if(frappe.session.user==doc.name) {
diff --git a/frappe/public/js/frappe/roles_editor.js b/frappe/public/js/frappe/roles_editor.js
index 37904dbb74..4a941a412c 100644
--- a/frappe/public/js/frappe/roles_editor.js
+++ b/frappe/public/js/frappe/roles_editor.js
@@ -74,6 +74,11 @@ frappe.RoleEditor = Class.extend({
.find('[data-user-role="'+user_role.role+'"] input[type="checkbox"]').get(0);
if(checkbox) checkbox.checked = true;
});
+
+ this.set_enable_disable();
+ },
+ set_enable_disable: function() {
+ $('.box').attr('disabled', this.disable ? true : false);
},
set_roles_in_table: function() {
var opts = this.get_roles();