fix: only validate auto user creation before insert

(cherry picked from commit ee1aa10328)
This commit is contained in:
Rucha Mahabal
2026-03-23 13:37:07 +05:30
committed by Mergify
parent 1ddadb72b7
commit 2f13b33e3d
2 changed files with 13 additions and 6 deletions

View File

@@ -460,7 +460,6 @@
"fieldname": "company_email", "fieldname": "company_email",
"fieldtype": "Data", "fieldtype": "Data",
"label": "Company Email", "label": "Company Email",
"mandatory_depends_on": "create_user_automatically",
"oldfieldname": "company_email", "oldfieldname": "company_email",
"oldfieldtype": "Data", "oldfieldtype": "Data",
"options": "Email" "options": "Email"
@@ -834,7 +833,7 @@
"image_field": "image", "image_field": "image",
"is_tree": 1, "is_tree": 1,
"links": [], "links": [],
"modified": "2026-03-23 11:06:35.539765", "modified": "2026-03-23 13:36:13.708549",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Setup", "module": "Setup",
"name": "Employee", "name": "Employee",

View File

@@ -126,7 +126,6 @@ class Employee(NestedSet):
self.set_employee_name() self.set_employee_name()
self.validate_date() self.validate_date()
self.validate_email() self.validate_email()
self.validate_auto_user_creation()
self.validate_status() self.validate_status()
self.validate_reports_to() self.validate_reports_to()
self.set_preferred_email() self.set_preferred_email()
@@ -162,8 +161,14 @@ class Employee(NestedSet):
self.validate_duplicate_user_id() self.validate_duplicate_user_id()
def validate_auto_user_creation(self): def validate_auto_user_creation(self):
if self.create_user_automatically and not self.company_email: if self.create_user_automatically and not (self.prefered_email or self.company_email):
frappe.throw(_("Email is mandatory when Create User Automatically is enabled")) frappe.throw(
_(
"Company Email or Preferred Email is mandatory when 'Create User Automatically' is enabled"
),
frappe.MandatoryError,
title=_("Auto User Creation Error"),
)
def update_nsm_model(self): def update_nsm_model(self):
frappe.utils.nestedset.update_nsm(self) frappe.utils.nestedset.update_nsm(self)
@@ -176,6 +181,9 @@ class Employee(NestedSet):
self.update_user_permissions() self.update_user_permissions()
self.reset_employee_emails_cache() self.reset_employee_emails_cache()
def before_insert(self):
self.validate_auto_user_creation()
def after_insert(self): def after_insert(self):
if not self.create_user_automatically: if not self.create_user_automatically:
return return
@@ -185,7 +193,7 @@ class Employee(NestedSet):
create_user( create_user(
employee=self.name, employee=self.name,
email=self.company_email, email=self.prefered_email or self.company_email,
create_user_permission=self.create_user_permission, create_user_permission=self.create_user_permission,
) )