import frappe
import json
from frappe.auth import LoginManager
@frappe.whitelist(allow_guest=True)
def customer_login():
"""
Handles customer signin by validating user credentials.
"""
form_data = json.loads(frappe.request.data)
login_manager = LoginManager()
login_manager.authenticate(form_data.get("email"), form_data.get("password"))
login_manager.post_login()
if frappe.response["message"] == "Logged In":
user = login_manager.user
user_details = frappe.get_doc("User", user)
frappe.response["user_details"] = { "api_key" : user_details.api_key,
"api_secret" : user_details.get_password("api_secret") }
else:
return False
@frappe.whitelist(allow_guest=True)
def forgot_password():
# Get the form data from the request
form_data = json.loads(frappe.request.data)
if not frappe.db.exists("User", form_data.get("email")):
return {"error": "User with this email does not exist"}
if send_login_link(form_data.get("email")):
return {"data": "Password reset link sent to your email."}