fix: User Account Auto Deletion in Hours (#16135)
* fix: data-deletion-in-hours * test: process_auto_request function * fix: import and comment * fix: patch for auto account deletion hours Co-authored-by: gavin <gavin18d@gmail.com>
This commit is contained in:
parent
dc7647f86d
commit
12ae7b9239
7 changed files with 31 additions and 13 deletions
|
|
@ -221,7 +221,8 @@ scheduler_events = {
|
|||
"frappe.deferred_insert.save_to_db",
|
||||
"frappe.desk.form.document_follow.send_hourly_updates",
|
||||
"frappe.integrations.doctype.google_calendar.google_calendar.sync",
|
||||
"frappe.email.doctype.newsletter.newsletter.send_scheduled_email"
|
||||
"frappe.email.doctype.newsletter.newsletter.send_scheduled_email",
|
||||
"frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request.process_data_deletion_request"
|
||||
],
|
||||
"daily": [
|
||||
"frappe.email.queue.set_expiry_for_email_queue",
|
||||
|
|
@ -240,8 +241,7 @@ scheduler_events = {
|
|||
"frappe.automation.doctype.auto_repeat.auto_repeat.set_auto_repeat_as_completed",
|
||||
"frappe.email.doctype.unhandled_email.unhandled_email.remove_old_unhandled_emails",
|
||||
"frappe.core.doctype.prepared_report.prepared_report.delete_expired_prepared_reports",
|
||||
"frappe.core.doctype.log_settings.log_settings.run_log_clean_up",
|
||||
"frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request.process_data_deletion_request"
|
||||
"frappe.core.doctype.log_settings.log_settings.run_log_clean_up"
|
||||
],
|
||||
"daily_long": [
|
||||
"frappe.integrations.doctype.dropbox_settings.dropbox_settings.take_backups_daily",
|
||||
|
|
|
|||
|
|
@ -197,3 +197,4 @@ frappe.patches.v14_0.copy_mail_data #08.03.21
|
|||
frappe.patches.v14_0.update_github_endpoints #08-11-2021
|
||||
frappe.patches.v14_0.remove_db_aggregation
|
||||
frappe.patches.v14_0.update_color_names_in_kanban_board_column
|
||||
frappe.patches.v14_0.update_auto_account_deletion_duration
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
import frappe
|
||||
|
||||
def execute():
|
||||
days = frappe.db.get_single_value("Website Settings", "auto_account_deletion")
|
||||
frappe.db.set_value("Website Settings", None, "auto_account_deletion", days * 24)
|
||||
|
|
@ -7,7 +7,7 @@ import re
|
|||
import frappe
|
||||
from frappe import _
|
||||
from frappe.model.document import Document
|
||||
from frappe.utils import get_fullname, date_diff, get_datetime
|
||||
from frappe.utils import get_fullname, time_diff_in_hours, get_datetime
|
||||
from frappe.utils.user import get_system_managers
|
||||
from frappe.utils.verified_command import get_signed_params, verify_request
|
||||
import json
|
||||
|
|
@ -353,8 +353,8 @@ def process_data_deletion_request():
|
|||
|
||||
for request in requests:
|
||||
doc = frappe.get_doc("Personal Data Deletion Request", request)
|
||||
if date_diff(get_datetime(), doc.creation) >= auto_account_deletion:
|
||||
doc.add_comment("Comment", _("The User record for this request has been auto-deleted due to inactivity."))
|
||||
if time_diff_in_hours(get_datetime(), doc.creation) >= auto_account_deletion:
|
||||
doc.add_comment("Comment", _("The User record for this request has been auto-deleted due to inactivity by system admins."))
|
||||
doc.trigger_data_deletion()
|
||||
|
||||
def remove_unverified_record():
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
import frappe
|
||||
import unittest
|
||||
from frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request import (
|
||||
remove_unverified_record,
|
||||
remove_unverified_record, process_data_deletion_request
|
||||
)
|
||||
from frappe.website.doctype.personal_data_download_request.test_personal_data_download_request import (
|
||||
create_user_if_not_exists,
|
||||
create_user_if_not_exists
|
||||
)
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
|
|
@ -58,3 +58,15 @@ class TestPersonalDataDeletionRequest(unittest.TestCase):
|
|||
self.assertFalse(
|
||||
frappe.db.exists("Personal Data Deletion Request", self.delete_request.name)
|
||||
)
|
||||
|
||||
def test_process_auto_request(self):
|
||||
frappe.db.set_value("Website Settings", None, "auto_account_deletion", "1")
|
||||
date_time_obj = datetime.strptime(
|
||||
self.delete_request.creation, "%Y-%m-%d %H:%M:%S.%f"
|
||||
) + timedelta(hours=-2)
|
||||
self.delete_request.db_set("creation", date_time_obj)
|
||||
self.delete_request.db_set("status", "Pending Approval")
|
||||
|
||||
process_data_deletion_request()
|
||||
self.delete_request.reload()
|
||||
self.assertEqual(self.delete_request.status, "Deleted")
|
||||
|
|
|
|||
|
|
@ -404,10 +404,10 @@
|
|||
"label": "Show Account Deletion Link in My Account Page"
|
||||
},
|
||||
{
|
||||
"default": "3",
|
||||
"default": "72",
|
||||
"fieldname": "auto_account_deletion",
|
||||
"fieldtype": "Int",
|
||||
"label": "Auto Account Deletion within (Days)"
|
||||
"label": "Auto Account Deletion within (Hours)"
|
||||
},
|
||||
{
|
||||
"fieldname": "footer_powered",
|
||||
|
|
@ -421,7 +421,7 @@
|
|||
"issingle": 1,
|
||||
"links": [],
|
||||
"max_attachments": 10,
|
||||
"modified": "2022-02-28 23:05:42.493192",
|
||||
"modified": "2022-02-24 15:37:22.360138",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Website",
|
||||
"name": "Website Settings",
|
||||
|
|
@ -446,4 +446,4 @@
|
|||
"sort_order": "ASC",
|
||||
"states": [],
|
||||
"track_changes": 1
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ frappe.ready(function() {
|
|||
callback: (data) => {
|
||||
if (data.message) {
|
||||
const intro_wrapper = $('#introduction .ql-editor.read-mode');
|
||||
const sla_description = __("Note: Your request for account deletion will be fulfilled within {0} days.", [data.message]);
|
||||
const sla_description = __("Note: Your request for account deletion will be fulfilled within {0} hours.", [data.message]);
|
||||
const sla_description_wrapper = `<br><b>${sla_description}</b>`;
|
||||
intro_wrapper.html(intro_wrapper.html() + sla_description_wrapper);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue