diff --git a/frappe/core/doctype/data_import/data_import.py b/frappe/core/doctype/data_import/data_import.py index 22c47be692..0df62080be 100644 --- a/frappe/core/doctype/data_import/data_import.py +++ b/frappe/core/doctype/data_import/data_import.py @@ -7,11 +7,14 @@ import frappe from frappe import _ from frappe.core.doctype.data_import.exporter import Exporter from frappe.core.doctype.data_import.importer import Importer +from frappe.model import core_doctypes_list from frappe.model.document import Document from frappe.modules.import_file import import_file_by_path from frappe.utils.background_jobs import enqueue, is_job_enqueued from frappe.utils.csvutils import validate_google_sheets_url +BLOCKED_DOCTYPES = set(core_doctypes_list) - {"User", "Role"} + class DataImport(Document): def validate(self): @@ -24,10 +27,15 @@ class DataImport(Document): self.template_options = "" self.template_warnings = "" + self.validate_doctype() self.validate_import_file() self.validate_google_sheets_url() 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): if self.import_file: # validate template