Project

General

Profile

Project activity #35176

open

Project activity #35009: Documentvertrouwelijkheid & status kunnen bewerken

Ik wil een behaviour hebben die op basis van wijziging van vertrouwelijkheid de permissies goed zet op een document

Added by Tahir Malik 8 days ago. Updated 7 days ago.

Status:
Backlog
Priority:
P4 Normal
Category:
-
Target version:
Start date:
14/10/2025
Due date:
% Done:

0%

Estimated time:

Description

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:

/**
 * 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();


Files

clipboard-202510141020-sb2du.png (172 KB) clipboard-202510141020-sb2du.png Tahir Malik, 14/10/2025 10:20 AM
Actions #2

Updated by Tahir Malik 8 days ago

  • Description updated (diff)
Actions #3

Updated by Tahir Malik 7 days ago

  • Description updated (diff)

Also available in: Atom PDF