diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index 100385772b..71a244ce4b 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -25,6 +25,7 @@ class User(Document): if self.name not in STANDARD_USERS: self.validate_email_type(self.email) self.add_system_manager_role() + self.validate_system_manager_user_type() self.check_enable_disable() self.update_gravatar() self.ensure_unique_roles() @@ -57,6 +58,12 @@ class User(Document): "role": "System Manager" }) + def validate_system_manager_user_type(self): + #if user has system manager role then user type should be system user + if ("System Manager" in [user_role.role for user_role in + self.get("user_roles")]) and self.get("user_type") != "System User": + frappe.throw(_("User with System Manager Role should always have User Type: System User")) + def email_new_password(self, new_password=None): if new_password and not self.in_insert: _update_password(self.name, new_password)