CCCPaste

Frappe Auth


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."}