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>