fix: prevent importing core doctypes using data import tool (#21649)
[skip ci]
This commit is contained in:
parent
17aad073d7
commit
04c1459631
1 changed files with 8 additions and 0 deletions
|
|
@ -7,11 +7,14 @@ import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.core.doctype.data_import.exporter import Exporter
|
from frappe.core.doctype.data_import.exporter import Exporter
|
||||||
from frappe.core.doctype.data_import.importer import Importer
|
from frappe.core.doctype.data_import.importer import Importer
|
||||||
|
from frappe.model import core_doctypes_list
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from frappe.modules.import_file import import_file_by_path
|
from frappe.modules.import_file import import_file_by_path
|
||||||
from frappe.utils.background_jobs import enqueue, is_job_enqueued
|
from frappe.utils.background_jobs import enqueue, is_job_enqueued
|
||||||
from frappe.utils.csvutils import validate_google_sheets_url
|
from frappe.utils.csvutils import validate_google_sheets_url
|
||||||
|
|
||||||
|
BLOCKED_DOCTYPES = set(core_doctypes_list) - {"User", "Role"}
|
||||||
|
|
||||||
|
|
||||||
class DataImport(Document):
|
class DataImport(Document):
|
||||||
def validate(self):
|
def validate(self):
|
||||||
|
|
@ -24,10 +27,15 @@ class DataImport(Document):
|
||||||
self.template_options = ""
|
self.template_options = ""
|
||||||
self.template_warnings = ""
|
self.template_warnings = ""
|
||||||
|
|
||||||
|
self.validate_doctype()
|
||||||
self.validate_import_file()
|
self.validate_import_file()
|
||||||
self.validate_google_sheets_url()
|
self.validate_google_sheets_url()
|
||||||
self.set_payload_count()
|
self.set_payload_count()
|
||||||
|
|
||||||
|
def validate_doctype(self):
|
||||||
|
if self.reference_doctype in BLOCKED_DOCTYPES:
|
||||||
|
frappe.throw(_("Importing {0} is not allowed.").format(self.reference_doctype))
|
||||||
|
|
||||||
def validate_import_file(self):
|
def validate_import_file(self):
|
||||||
if self.import_file:
|
if self.import_file:
|
||||||
# validate template
|
# validate template
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue