Skip to content

Commit

Permalink
Merge pull request frappe#27926 from frappe/mergify/bp/version-13-hot…
Browse files Browse the repository at this point in the history
…fix/pr-27914

fix: Avoid automatic customer creation on website user login (backport frappe#27914)
  • Loading branch information
marination authored Oct 27, 2021
2 parents 11c6cef + 7e4ee4e commit 01fa539
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions erpnext/e_commerce/shopping_cart/utils.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt

from __future__ import unicode_literals

import frappe
import frappe.defaults

Expand All @@ -17,10 +14,19 @@ def show_cart_count():
return False

def set_cart_count(login_manager):
role, parties = check_customer_or_supplier()
if role == 'Supplier': return
# since this is run only on hooks login event
# 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():
from erpnext.e_commerce.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()

def clear_cart_count(login_manager):
Expand All @@ -31,13 +37,13 @@ def update_website_context(context):
cart_enabled = is_cart_enabled()
context["shopping_cart_enabled"] = cart_enabled

def check_customer_or_supplier():
if frappe.session.user:
def is_customer():
if frappe.session.user and frappe.session.user != "Guest":
contact_name = frappe.get_value("Contact", {"email_id": frappe.session.user})
if contact_name:
contact = frappe.get_doc('Contact', contact_name)
for link in contact.links:
if link.link_doctype in ('Customer', 'Supplier'):
return link.link_doctype, link.link_name
if link.link_doctype == 'Customer':
return True

return 'Customer', None
return False

0 comments on commit 01fa539

Please sign in to comment.