[fix] add user default role
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index f4b87d2..5b4e687 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -148,8 +148,8 @@
"User": {
"after_insert": "frappe.email.doctype.contact.contact.update_contact",
"validate": "erpnext.hr.doctype.employee.employee.validate_employee_role",
- "on_update": "erpnext.hr.doctype.employee.employee.update_user_permissions",
- "on_update": "frappe.geo.address_and_contact.set_default_role"
+ "on_update": ["erpnext.hr.doctype.employee.employee.update_user_permissions",
+ "erpnext.portal.utils.set_default_role"]
},
("Sales Taxes and Charges Template", 'Price List'): {
"on_update": "erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings.validate_cart_settings"
diff --git a/erpnext/portal/utils.py b/erpnext/portal/utils.py
new file mode 100644
index 0000000..7dffd03
--- /dev/null
+++ b/erpnext/portal/utils.py
@@ -0,0 +1,17 @@
+import frappe
+
+def set_default_role(doc, method):
+ '''Set customer, supplier, student based on email'''
+ if frappe.flags.setting_role or frappe.flags.in_migrate:
+ return
+ contact_name = frappe.get_value('Contact', dict(email_id=doc.email))
+ if contact_name:
+ contact = frappe.get_doc('Contact', contact_name)
+ for link in contact.links:
+ frappe.flags.setting_role = True
+ if link.link_doctype=='Customer':
+ doc.add_roles('Customer')
+ elif link.link_doctype=='Supplier':
+ doc.add_roles('Supplier')
+ elif frappe.get_value('Student', dict(student_email_id=doc.email)):
+ doc.add_roles('Student')