fix: Avoid automatic customer creation on website user login
This commit is contained in:
parent
401e22fb8d
commit
d824a90fac
@ -1,8 +1,5 @@
|
|||||||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||||
# License: GNU General Public License v3. See license.txt
|
# License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings import (
|
from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings import (
|
||||||
@ -18,10 +15,17 @@ def show_cart_count():
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def set_cart_count(login_manager):
|
def set_cart_count(login_manager):
|
||||||
role, parties = check_customer_or_supplier()
|
# since this is run only on hooks login event
|
||||||
if role == 'Supplier': return
|
# make sure user is already a customer
|
||||||
|
# before trying to set cart count
|
||||||
|
user_is_customer = is_customer()
|
||||||
|
if not user_is_customer: return
|
||||||
|
|
||||||
if show_cart_count():
|
if show_cart_count():
|
||||||
from erpnext.shopping_cart.cart import set_cart_count
|
from erpnext.shopping_cart.cart import set_cart_count
|
||||||
|
# set_cart_count will try to fetch existing cart quotation
|
||||||
|
# or create one if non existent (and create a customer too)
|
||||||
|
# cart count is calculated from this quotation's items
|
||||||
set_cart_count()
|
set_cart_count()
|
||||||
|
|
||||||
def clear_cart_count(login_manager):
|
def clear_cart_count(login_manager):
|
||||||
@ -32,13 +36,13 @@ def update_website_context(context):
|
|||||||
cart_enabled = is_cart_enabled()
|
cart_enabled = is_cart_enabled()
|
||||||
context["shopping_cart_enabled"] = cart_enabled
|
context["shopping_cart_enabled"] = cart_enabled
|
||||||
|
|
||||||
def check_customer_or_supplier():
|
def is_customer():
|
||||||
if frappe.session.user:
|
if frappe.session.user and frappe.session.user != "Guest":
|
||||||
contact_name = frappe.get_value("Contact", {"email_id": frappe.session.user})
|
contact_name = frappe.get_value("Contact", {"email_id": frappe.session.user})
|
||||||
if contact_name:
|
if contact_name:
|
||||||
contact = frappe.get_doc('Contact', contact_name)
|
contact = frappe.get_doc('Contact', contact_name)
|
||||||
for link in contact.links:
|
for link in contact.links:
|
||||||
if link.link_doctype in ('Customer', 'Supplier'):
|
if link.link_doctype == 'Customer':
|
||||||
return link.link_doctype, link.link_name
|
return True
|
||||||
|
|
||||||
return 'Customer', None
|
return False
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user