From 5fea524ec516bf1ca64b5e5d326713472582dee2 Mon Sep 17 00:00:00 2001 From: Mangesh-Khairnar Date: Mon, 18 Feb 2019 00:38:04 +0530 Subject: [PATCH] feat: anonymize data for multiple email match field --- frappe/hooks.py | 20 +++++++----- .../personal_data_deletion_request.py | 31 ++++++++++++++++--- .../test_personal_data_deletion_request.py | 4 ++- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/frappe/hooks.py b/frappe/hooks.py index 235c39745a..05d992f224 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -229,13 +229,6 @@ before_migrate = ['frappe.patches.v11_0.sync_user_permission_doctype_before_migr otp_methods = ['OTP App','Email','SMS'] user_privacy_documents = [ - { - 'doctype': 'User', - 'match_field': 'email', - 'personal_fields': ['first_name', 'middle_name', 'last_name', 'full_name', 'username', 'birth_date', 'user_image', 'phone', - 'mobile_no', 'location', 'banner_image', 'interest', 'bio', 'email_signature', 'background_image'], - 'applies_to_website_user': 1 - }, { 'doctype': 'File', 'match_field': 'attached_to_name', @@ -263,6 +256,12 @@ user_privacy_documents = [ 'match_field': 'email_id', 'personal_fields': ['first_name', 'last_name', 'phone', 'mobile_no'], }, + { + 'doctype': 'Address', + 'match_field': 'email_id', + 'personal_fields': ['address_title', 'address_line1', 'address_line2', 'city', 'county', 'state', 'pincode', + 'phone', 'fax'], + }, { 'doctype': 'Communication', 'match_field': 'sender', @@ -272,5 +271,12 @@ user_privacy_documents = [ 'doctype': 'Communication', 'match_field': 'recipients', }, + { + 'doctype': 'User', + 'match_field': 'name', + 'personal_fields': ['email', 'username', 'first_name', 'middle_name', 'last_name', 'full_name', 'birth_date', + 'user_image', 'phone', 'mobile_no', 'location', 'banner_image', 'interest', 'bio', 'email_signature', 'background_image'], + 'applies_to_website_user': 1 + }, ] \ No newline at end of file diff --git a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py index b9df3c24ec..2864f88061 100644 --- a/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py +++ b/frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals import frappe from frappe import _ +import re from frappe.model.document import Document from frappe.utils.verified_command import get_signed_params, verify_request @@ -27,7 +28,7 @@ class PersonalDataDeletionRequest(Document): header=[_("Confirm Deletion of Data"), "green"]) def anonymize_data(self): - if 'System Manager' not in frappe.get_roles(frappe.session.user) and self.status != 'Pending Approval': + if not ('System Manager' in frappe.get_roles(frappe.session.user) and self.status == 'Pending Approval'): frappe.throw(_("You are not authorized to complete this action.")) privacy_docs = frappe.get_hooks("user_privacy_documents") @@ -37,6 +38,8 @@ class PersonalDataDeletionRequest(Document): 'Int': 0, 'Code': 'http://xxxxx'} + regex = re.compile(r"(?