added template for verification mail

This commit is contained in:
Mangesh-Khairnar 2019-02-01 17:14:10 +05:30
parent 9bd09b95d9
commit 883ae0c30c
2 changed files with 56 additions and 16 deletions

View file

@ -4,6 +4,7 @@
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "format:deleted-user-{####}@deleted.com",
"beta": 0,
"creation": "2019-01-25 14:22:44.422417",
"custom": 0,
@ -20,19 +21,19 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "user",
"fieldtype": "Link",
"fieldname": "email",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "User",
"in_standard_filter": 1,
"label": "Email",
"length": 0,
"no_copy": 0,
"options": "User",
"options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@ -53,19 +54,20 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
"fetch_from": "user.full_name",
"fieldname": "user_name",
"fieldtype": "Data",
"default": "Pending Verification",
"fieldname": "status",
"fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "User Name",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Status",
"length": 0,
"no_copy": 0,
"options": "Pending Verification\nPending Approval\nDeleted",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@ -90,8 +92,8 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2019-01-25 14:22:44.422417",
"modified_by": "Administrator",
"modified": "2019-02-01 13:22:04.272688",
"modified_by": "mangesh@iwebnotes.com",
"module": "Website",
"name": "Personal Data Delete Request",
"name_case": "",

View file

@ -6,8 +6,46 @@ from __future__ import unicode_literals
import frappe
from frappe import _
from frappe.model.document import Document
from frappe.desk.form.linked_with import get_linked_doctypes
from frappe.website.doctype.personal_data_download_request.personal_data_download_request import get_unlinked_user_data, get_linked_user_data
from frappe.utils.verified_command import get_signed_params, verify_request
from frappe.website.doctype.personal_data_download_request.personal_data_download_request import get_user_data
class PersonalDataDeleteRequest(Document):
pass
def after_insert(self):
if frappe.session.user in ['Administrator', 'Guest']:
frappe.throw(_("This user's data cannot be requested for deletion"))
else:
self.send_verification_mail()
def send_verification_mail(self):
url = frappe.utils.get_url("/api/method/frappe.website.doctype.personal_data_delete_request.personal_data_delete_request.confirm_deletion") +\
"?" + get_signed_params({"email": self.email})
frappe.sendmail(recipients= self.email,
subject=_("ERPNext: Confirm Deletion of Data"),
template="delete_data_confirmation",
args={'email':self.email, 'link':url},
header=[_("ERPNext: Confirm Deletion of Data"), "green"])
def anonymize_data(self):
data = get_user_data(self.email)
hooks = frappe.get_hooks("user_privacy_documents")
for hook in hooks:
for doc in data.get(hook['doctype'],[]):
email_field = [hook for hook in hook['email_field'] if doc.get(hook) == self.email][0]
frappe.db.sql("""UPDATE `tab{0}`
SET `{1}`='{2}', `{3}'
WHERE name = %s
""".format(hook['doctype'], email_field, self.name,
'\', `'.join(map(lambda u : u+'`=\''+str(u), hook['personal_fields']))), (doc.get('name')))
@frappe.whitelist(allow_guest=True)
def confirm_deletion(email):
if not verify_request:
return
frappe.set_value("Personal Data Delete Request", {'email':email}, 'status', 'Pending Approval')
frappe.db.commit()
frappe.respond_as_web_page(_("Confirmed"),
_("The process for deletion of ERPNext Data associated with {0} has been initiated.").format(email),
indicator_color='green')