Project

General

Profile

Project activity #35176

Updated by Tahir Malik 7 days ago

Zie document: 
 https://git.contezza.nl/develop/products/tezza-workspace/-/blob/feature/documentation/%2335009/docs/src/docs/asciidoc/includes/_tezza_document.adoc?ref_type=heads 

 > Voorbeelden: 
 > - Een Zaakvertrouwelijke zaak met een Openbaar document is niet toegestaan. 
 >     Het document wordt dan automatisch ingesteld op Zaakvertrouwelijk (of hoger, bijv. Geheim). 
 > - Een Openbare zaak met een Vertrouwelijk document is wel toegestaan. 

 * Bij het updaten van de vertrouwelijkheid 
 ** Permissie goed zetten --> Zie onderstaande script 
 ** Controle of de zaak vertrouwelijkheid hoger is in vertrouwelijkheid en dan pas wordt inherit permissies van het document eraf gehaald 
 *** Voorbeeld: indien een zaak Zaakvertrouwelijk is en een document ook Zaakvertrouwelijk is, dan hoeven we niks speciaals op de document permissies te doen 
 *** Voorbeeld: indien een zaak Zaakvertrouwelijk is en een document ook Confidentieel is, dan passen we de permissies aan volgens logica hieronder 


 

 Zie bij guh is sit een rule + script. Zie gerelateerde ticket #16937 voor het origineel: 
 !clipboard-202510141020-sb2du.png! 
 <pre><code class="javascript"> 
 /** 
  * Rule is applicable for all cm:content types and need to be configured for create and update triggers. Rule need to be created on the 'Zaken' folder. 
  * This script disables inherit permissions for EIO files and set local permissions.  
  *  
  * for (var i in document.directPermissions) { 
  *     logger.log(document.directPermissions[i]) 
  * } 
  *  
  * Date: November 2022 
  */ 

 function main() { 

     // Script is only applicable for EIO files. Also exclude records. 
     if (!document.hasAspect("rgbz:enkelvoudigInformatieobject") || document.hasAspect("rma:record")) { 
         return; 
     } 

     // Only process confidential documents 
     if (isConfidential(document) == false) { 
         return; 
     } 

     // Only disable inherit permissions when inherit is still on 
     if (document.inheritsPermissions()) { 

         // Set site manager group 
         var siteManagerGroup = "GROUP_site_" + document.getSiteShortName() + "_SiteManager"; 
         document.setPermission("Coordinator", siteManagerGroup); 

         document.setInheritsPermissions(false); 
     } 

     // We have to update the 'behandelaars' when document is being updated. This is not ideal solution  
     // (because update zaak does not trigger update document), but for now acceptable. 
     if (!document.inheritsPermissions()) { 
         var zaakFolder = apiUtils.getZaak(document); 
         if (zaakFolder != null) { 
             var behandelaars = zaakFolder.properties["tza:behandelaars"]; 
             if (behandelaars != null) { 

                 removeCurrentBehandelaars(document); 

                 for (var i in behandelaars) { 
                     var user = behandelaars[i]; 
                     document.setPermission("Collaborator", user); 
                 } 
             } 
         } 
     } 
 } 

 /** 
  * Remove current behandelaars of document. 
  * @param {ScriptNode} document  
  */ 
 function removeCurrentBehandelaars(document) { 
     for (var i in document.directPermissions) { 
         var permission = document.directPermissions[i]; 

         if (permission == undefined) { 
             continue; 
         } 
         var parts = permission.split(";"); 
         // Exclude groups when remove local permissions 
         if (parts[1].indexOf("GROUP_") == -1) { 
             document.removePermission(parts[2], parts[1]); 
         } 
     } 
 } 

 /** 
  * Validates if document is confidential by validating value 'rgbz:vertrouwelijkheidaanduiding'. 
  * @param {ScriptNode} document EIO 
  * @returns Boolean true if document is confidential 
  */ 
 function isConfidential(document) { 
     var value = document.properties["rgbz:vertrouwelijkheidaanduiding"]; 
     if (value == null) { 
         return false; 
     } 

     if (["confidentieel", "geheim", "zeer_geheim"].includes(value)) { 
         return true; 
     } 
     return false; 
 } 

 main(); 
 </code></pre> 

Back