Merge pull request #375 from frappe/develop

chore: Merge develop to main
This commit is contained in:
Shariq Ansari 2024-09-26 16:05:22 +05:30 committed by GitHub
commit 3bdab4c6c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 50 additions and 0 deletions

36
crm/api/demo.py Normal file
View File

@ -0,0 +1,36 @@
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(user):
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,
)

View File

@ -132,6 +132,7 @@ before_uninstall = "crm.uninstall.before_uninstall"
override_doctype_class = {
"Contact": "crm.overrides.contact.CustomContact",
"Email Template": "crm.overrides.email_template.CustomEmailTemplate",
"User": "crm.overrides.user.CustomUser",
}
# Document Events
@ -156,6 +157,9 @@ doc_events = {
"CRM Deal": {
"on_update": ["crm.fcrm.doctype.erpnext_crm_settings.erpnext_crm_settings.create_customer_in_erpnext"],
},
"User": {
"before_validate": ["crm.api.demo.validate_user"],
}
}
# Scheduled Tasks

10
crm/overrides/user.py Normal file
View File

@ -0,0 +1,10 @@
# import frappe
from frappe import _
from frappe.core.doctype.user.user import User
from crm.api.demo import validate_reset_password
class CustomUser(User):
def validate_reset_password(self):
# restrict demo user to reset password
validate_reset_password(self)