added template for verification mail
This commit is contained in:
parent
9bd09b95d9
commit
883ae0c30c
2 changed files with 56 additions and 16 deletions
|
|
@ -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": "",
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
Loading…
Add table
Reference in a new issue