Skip to content

Commit d50f03f

Browse files
Merge pull request frappe#38207 from ShrihariMahabal/report-cache-update
fix: update user allowed reports cache after insert and trash
2 parents ac3d5ee + 79d9788 commit d50f03f

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

frappe/core/doctype/report/report.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,13 @@ def on_trash(self):
106106

107107
delete_custom_role("report", self.name)
108108

109+
def clear_cache(self):
110+
self.update_report_cache()
111+
return super().clear_cache()
112+
113+
def update_report_cache(self):
114+
frappe.cache.delete_key("bootinfo")
115+
109116
def delete_report_folder(self):
110117
from frappe.modules.export_file import delete_folder
111118

frappe/core/doctype/report/test_report.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,3 +406,32 @@ def test_add_total_row_for_tree_reports(self):
406406
self.assertEqual(result[-1][0], "Total")
407407
self.assertEqual(result[-1][1], 200)
408408
self.assertEqual(result[-1][2], 150.50)
409+
410+
def test_report_cache_invalidation(self):
411+
import frappe.sessions
412+
from frappe.utils import set_request
413+
414+
frappe.set_user("test@example.com")
415+
set_request(method="GET", path="/app")
416+
417+
try:
418+
frappe.sessions.get()
419+
420+
report_name = _save_report(
421+
"Test Cache Invalidation Report",
422+
"User",
423+
json.dumps([{"fieldname": "email", "fieldtype": "Data", "label": "Email"}]),
424+
)
425+
426+
cached_bootinfo = frappe.sessions.get()
427+
self.assertIn(report_name, cached_bootinfo["user"]["all_reports"])
428+
429+
doc = frappe.get_doc("Report", report_name)
430+
delete_report(doc.name)
431+
432+
cached_bootinfo = frappe.sessions.get()
433+
self.assertNotIn(report_name, cached_bootinfo["user"]["all_reports"])
434+
435+
finally:
436+
frappe.local.request = None
437+
frappe.set_user("Administrator")

0 commit comments

Comments
 (0)