fix: roles before user is saved

This commit is contained in:
Jannat Patel
2026-04-03 11:52:00 +05:30
parent ab96e354cc
commit f9f17ef8ac
2 changed files with 11 additions and 10 deletions

View File

@@ -442,8 +442,6 @@ def create_user(user):
full_name=full_name,
user_image=user.get("user_image"),
roles=["Course Creator"],
check_existing=False,
validate_email=True,
)
return user_doc

View File

@@ -99,31 +99,34 @@ def process_user_names(first_name, last_name, full_name):
return first_name, last_name or "", full_name
def create_user_document(email, first_name, last_name, full_name, user_image=None):
def create_user_document(email, first_name, last_name, full_name, user_image=None, roles=None):
user_doc = frappe.new_doc("User")
user_doc.email = email
user_doc.first_name = first_name
user_doc.last_name = last_name
user_doc.full_name = full_name
user_doc.user_image = user_image
user_doc.send_welcome_email = False
if user_image:
user_doc.user_image = user_image
if not roles:
roles = ["LMS Student"]
for role in roles:
user_doc.append("roles", {"role": role})
user_doc.insert()
return user_doc
def create_user(email, first_name=None, last_name=None, full_name=None, user_image=None, roles=None):
validate_email_address(email, True)
print(email)
print(frappe.db.exists("User", email))
existing_user = frappe.db.exists("User", email)
print("existing_user", existing_user)
if existing_user:
print("User already exists")
return frappe.get_doc("User", email)
first_name, last_name, full_name = process_user_names(first_name, last_name, full_name)
user_doc = create_user_document(email, first_name, last_name, full_name, user_image)
if not roles:
roles = ["LMS Student"]
user_doc.add_roles(*roles)
user_doc = create_user_document(email, first_name, last_name, full_name, user_image, roles)
return user_doc