diff --git a/frappe/core/doctype/user/user.js b/frappe/core/doctype/user/user.js index d74e98bf7f..c29b03a954 100644 --- a/frappe/core/doctype/user/user.js +++ b/frappe/core/doctype/user/user.js @@ -38,8 +38,9 @@ frappe.ui.form.on('User', { }, onload: function(frm) { + frm.can_edit_roles = has_common(frappe.user_roles, ["Administrator", "System Manager"]); - if(has_common(frappe.user_roles, ["Administrator", "System Manager"]) && !frm.doc.__islocal) { + if(frm.can_edit_roles && !frm.is_new()) { if(!frm.roles_editor) { var role_area = $('
') .appendTo(frm.fields_dict.roles_html.wrapper); @@ -55,8 +56,9 @@ frappe.ui.form.on('User', { }, refresh: function(frm) { var doc = frm.doc; - if(!frm.doc.islocal && !frm.roles_editor) { + if(!frm.is_new() && !frm.roles_editor && frm.can_edit_roles) { frm.reload_doc(); + return; } if(doc.name===frappe.session.user && !doc.__unsaved && frappe.all_timezones @@ -68,7 +70,7 @@ frappe.ui.form.on('User', { frm.toggle_display(['sb1', 'sb3', 'modules_access'], false); - if(!doc.__islocal){ + if(!frm.is_new()) { frm.add_custom_button(__("Set Desktop Icons"), function() { frappe.route_options = { "user": doc.name @@ -112,8 +114,8 @@ frappe.ui.form.on('User', { frm.trigger('enabled'); - if (frm.roles_editor) { - frm.roles_editor.disabled = frm.doc.role_profile_name ? 1 : 0; + if (frm.roles_editor && frm.can_edit_roles) { + frm.roles_editor.disable = frm.doc.role_profile_name ? 1 : 0; frm.roles_editor.show(); } @@ -156,13 +158,13 @@ frappe.ui.form.on('User', { }, enabled: function(frm) { var doc = frm.doc; - if(!doc.__islocal && has_common(frappe.user_roles, ["Administrator", "System Manager"])) { + if(!frm.is_new() && has_common(frappe.user_roles, ["Administrator", "System Manager"])) { frm.toggle_display(['sb1', 'sb3', 'modules_access'], doc.enabled); frm.set_df_property('enabled', 'read_only', 0); } if(frappe.session.user!=="Administrator") { - frm.toggle_enable('email', doc.__islocal); + frm.toggle_enable('email', frm.is_new()); } }, create_user_email:function(frm) {