snapshot of https://github.com/frappe/crm.git (develop, 2026-09-18; blobs > 131072B omitted)
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
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
This commit is contained in:
34
crm/api/live_demo.py
Normal file
34
crm/api/live_demo.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# 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,
|
||||
)
|
||||
Reference in New Issue
Block a user