Berechtigungskonzept von Annotationen

In manchen Sachverhalten kann es vorkommen und sinnvoll erscheinen, dass Annotationen nur eingeschränkt durch den Benutzer angelegt, gelöscht oder anderweitig verändert werden dürfen. Zu diesem Zweck bietet die jadice documentplatform ein Berechtigungskonzept.

Bestimmte Berechtigungen können auf ein einzelnes Annotationsobjekt angewendet werden. Ebenso ist es möglich globale Berechtigungen über die komplette Dokument-Instanz zu setzen.

Berechtigung eines Annotation-Objekts

Annotations spezifische Berechtigungen werden mit der Klasse IndividualAnnotationPermission definiert:

  • Berechtigung Ändern

    Erlauben: IndividualAnnotationPermission.ALLOW.CHANGE

    Verweigern: IndividualAnnotationPermission.DENY.CHANGE

    Betrifft Änderungen via GUI-Komponenten aller Eigenschaften der Annotation (z.B. Grösse, Position).

  • Berechtigung Löschen

    Erlauben: IndividualAnnotationPermission.ALLOW.REMOVE

    Verweigern: IndividualAnnotationPermission.DENY.REMOVE

    Betrifft Löschenfunktionalität via GUI-Komponenten.

  • Berechtigung Anzeigen

    Erlauben: IndividualAnnotationPermission.ALLOW.SHOW

    Verweigern: IndividualAnnotationPermission.DENY.SHOW

    Wenn die Berechtigung verweigert wird, dann ist die Annotation im Viewer-Fenster nicht sichtbar.

  • Berechtigung Schreiben

    Erlauben: IndividualAnnotationPermission.ALLOW.WRITE

    Verweigern: IndividualAnnotationPermission.DENY.WRITE

    Wenn die Berechtigung verweigert wird, kann die Annotation nicht gespeichert werden.

Setzen einer Berechtigung via API:

Annotation a = <<Annotation-Instanz>>
// Setzen der Berechtigung 'Änderung verweigern'
a.getPermissions().getPermissions()
    .add(IndividualAnnotationPermission.DENY.CHANGE);

Als Standardeinstellung sind alle Berechtigungen erlaubt.

Berechtigung eines Annotation-Objekts beim Laden setzen

Beim Laden kann bereits eine Berechtigungsvergabe an die einzelnen Annotationsobjekte vorgenommen werden, hierzu wird eine Implementation des Interface AnnotationCustomizer benötigt, die beim Ladevorgang den entsprechenden Annotation-ReaderSettings gesetzt wird.

final DefaultReaderControls controls = new DefaultReaderControls();

// AnnotationCustomizer-Implementation, wird fürs setzen der Berechtigung benutzt
final AnnotationCustomizer annotationCustomizer = new AnnotationCustomizer() {
    @Override
    public void customize(Annotation a) {
    // Hier gewünschte Berechtigungen setzen
    //	a.getPermissions().getPermissions()
    //		.add(IndividualAnnotationPermission.DENY.CHANGE);
    //	a.getPermissions().getPermissions()
    //		.add(IndividualAnnotationPermission.DENY.REMOVE);
    //	a.getPermissions().getPermissions()
    //		.add(IndividualAnnotationPermission.DENY.SHOW);
    }
};

// Implementation den ReaderSettings übergeben (hier z.B. für FileNet P8),
// die Controls dann fürs Laden benutzen
controls.getSettings(FNP8AnnotationReaderSettings.class)
	.getAnnotationCustomizers().add(annotationCustomizer);

Globale- / Dokument gebundene Berechtigung

Es existiert noch ein weiteres Berechtigungkonzept, welches das Anlegen, Verändern, Löschen von Annotationen via GUI-Komponenten steuert, diese Berechtigungen müssen an der jadice Document Instanz registriert werden und werden mit der Klasse DocumentAnnotationPermission abgebildet.

Die Dokument gebundene Berechtigungen haben Vorrang gegenüber den Annotationsberechtigungen

  • Berechtigung Ändern

    Erlauben: DocumentAnnotationPermission.ALLOW.CHANGE

    Verweigern: DocumentAnnotationPermission.DENY.CHANGE

    Änderungen von Annotationen via GUI-Komponenten werden verweigert.

  • Berechtigung Löschen

    Erlauben: IndividualAnnotationPermission.ALLOW.REMOVE

    Verweigern: IndividualAnnotationPermission.DENY.REMOVE

    Löschen von Annotationen via GUI-Komponenten ist nicht möglich.

  • Berechtigung Anlegen

    Erlauben: IndividualAnnotationPermission.ALLOW.ADD

    Verweigern: IndividualAnnotationPermission.DENY.ADD

    Annotationen via GUI-Komponenten können nicht angelegt werden.

Setzen der Berechtigung an einer Dokumentinstanz:

Document document = <<Document-Instanz>>
// Berechtigung setzen, Anlegen von Annotationen nicht möglich
document.getPermissions().getPermissions().add(DocumentAnnotationPermission.DENY.ADD);
[jadice viewer Version 6.1.37: Dokumentation für Entwickler. Veröffentlicht: 2024-11-11]