From c65c3c7ec258f2a03bb2defda48e1bff1d4edcb2 Mon Sep 17 00:00:00 2001
From: Sascha Schmidt <s.schmidt@adito.de>
Date: Thu, 21 Oct 2021 14:33:37 +0200
Subject: [PATCH] [Projekt: xRM-ContactManagement][TicketNr.:
 2000835][Organisation/Person: Brief schreiben: Exception bei Nicht-odt-Datei]

---
 entity/Letter_entity/onValidation.js           | 17 ++++++++++++++++-
 language/_____LANGUAGE_de/_____LANGUAGE_de.aod |  4 ++++
 process/Permission_lib/process.js              |  4 ++--
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/entity/Letter_entity/onValidation.js b/entity/Letter_entity/onValidation.js
index 083fd4dbe68..142f30cb2e2 100644
--- a/entity/Letter_entity/onValidation.js
+++ b/entity/Letter_entity/onValidation.js
@@ -1,8 +1,23 @@
 import("system.vars");
 import("system.translate");
 import("system.result");
+import("DocumentTemplate_lib");
 
-if (!vars.get("$field.bindata") && !vars.get("$field.DOCUMENT_TEMPLATE"))
+var templateId = vars.get("$field.DOCUMENT_TEMPLATE");
+var bindata = vars.get("$field.bindata");
+var upload = new FileUpload(bindata);
+
+var template;
+if (upload.isFilled())
+    template = DocumentTemplate.fromUpload(upload);
+else if (templateId)
+    template = DocumentTemplateUtils.getTemplate(templateId);
+
+if (!bindata && !templateId)
 {
     result.string(translate.text("Please select a documenttemplate or upload a new file."))
+}
+else if (![DocumentTemplate.types.ODT, DocumentTemplate.types.DOCM, DocumentTemplate.types.DOCX].includes(template.type))
+{
+    result.string(translate.text("Only .odt, .docx and .docm files are supported for letters."))
 }
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 22012613865..b5310d92292 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -25,6 +25,10 @@
       <key>Base Template</key>
       <value>Ursprungsvorlage</value>
     </entry>
+    <entry>
+      <key>Only .odt, .docx and .docm files are supported for letters.</key>
+      <value>Für Briefe werden nur .odt, .docx und .docm Dateien unterstützt</value>
+    </entry>
     <entry>
       <key>Open in mosaico</key>
       <value>In Mosaico öffnen</value>
diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js
index 6bbde7c56e0..bcd5ad4035f 100644
--- a/process/Permission_lib/process.js
+++ b/process/Permission_lib/process.js
@@ -1017,12 +1017,12 @@ function PermissionUtil () {}
         if(pRecordState != neon.OPERATINGSTATE_NEW && pObjectType) 
         {
             var entity = ContextUtils.getEntity(pObjectType);
-            if (tools.hasPermission(tools.PERMISSION_VIEW, entity, null, pUser))
+            if (tools.hasPermission(tools.PERMISSION_VIEW, entity, null, pUser, null))
             {
                 if (pObjectRowId)
                 {
                     try {
-                        if (tools.hasPermission(tools.PERMISSION_READ, entity, null, pUser))
+                        if (tools.hasPermission(tools.PERMISSION_READ, entity, null, pUser, [pObjectRowId]))
                         {
                             res = {
                                 status: tools.PERMISSION_READ, 
-- 
GitLab