Some checks failed
Frontend / Unit Tests & Coverage (push) Has been skipped
Regenerate POT file (translatable strings) / Regenerate POT file (develop) (push) Failing after 1m13s
Regenerate POT file (translatable strings) / Regenerate POT file (main-hotfix) (push) Failing after 6s
Server / Tests (frappe ${{ matrix.frappe-branch }}) (push) Has been skipped
Server / Resolve frappe matrix (push) Failing after 1s
Frontend / Lint (push) Failing after 1s
Frontend / Production Build (push) Failing after 1s
Server / Coverage Wrap Up (push) Has been skipped
Frontend / Coverage Wrap Up (push) Has been skipped
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
# Copyright (c) 2024, Frappe Technologies and contributors
|
|
# This file is used to handle live demo site (https://frappecrm-demo.frappe.cloud) related API calls and hooks
|
|
|
|
import frappe
|
|
from frappe import _
|
|
from frappe.auth import LoginManager
|
|
|
|
|
|
@frappe.whitelist(allow_guest=True)
|
|
def login():
|
|
if not frappe.conf.demo_username or not frappe.conf.demo_password:
|
|
return
|
|
frappe.local.response["redirect_to"] = "/crm"
|
|
login_manager = LoginManager()
|
|
login_manager.authenticate(frappe.conf.demo_username, frappe.conf.demo_password)
|
|
login_manager.post_login()
|
|
frappe.local.response["type"] = "redirect"
|
|
frappe.local.response["location"] = frappe.local.response["redirect_to"]
|
|
|
|
|
|
def validate_reset_password(doc, event):
|
|
if frappe.conf.demo_username and frappe.session.user == frappe.conf.demo_username:
|
|
frappe.throw(
|
|
_("Password cannot be reset by Demo User {}").format(frappe.bold(frappe.conf.demo_username)),
|
|
frappe.PermissionError,
|
|
)
|
|
|
|
|
|
def validate_user(doc, event):
|
|
if frappe.conf.demo_username and frappe.session.user == frappe.conf.demo_username and doc.new_password:
|
|
frappe.throw(
|
|
_("Password cannot be reset by Demo User {}").format(frappe.bold(frappe.conf.demo_username)),
|
|
frappe.PermissionError,
|
|
)
|