Klauseln für die Zugriffsrechte

enaio® 10.10 »

Zugriffsrechte können Sie von einer Klausel abhängig machen. Das vergebene Recht wird dann nur gewährt, wenn die Klausel erfüllt ist.

Diese Arbeitsschritte führen Sie aus, um Klauseln zu erstellen:

  1. Öffnen Sie das Fenster Sicherheitssystem.
  2. Klicken Sie auf die Registerkarte Benutzergruppen (Zugriffsrechte).
  3. Wählen Sie eine Benutzergruppe aus der Liste Benutzergruppe, markieren Sie im rechten Fenster einen Objekttyp und im unteren Fenster ein vergebenes Recht.
  4. Klicken Sie auf die Schaltfläche Klauseln.

    Der Editor wird geöffnet.

    enaio_pic

  5. Erstellen Sie im Editor die Klausel.

    Mit Strg+Leertaste erhalten Sie Eingabeunterstützung durch eine Vorschlagliste.

    Über das Kontextmenü können Eingaben markiert, kopiert, eingefügt, gelöscht werden.

  6. Prüfen Sie die Klausel.

    Die Prüfung zeigt das entsprechende SQL-Statement mit den aktuellen Werten von Variablen an.

    Wenn Sie auf Ausführen klicken, dann wird das SQL-Statement ausgeführt. Angezeigt wird die Anzahl der Treffer. Die Aussagekraft ist abhängig vom Datenbestand und den aktuellen Werten von Variablen.

  7. Bestätigen Sie mit OK.

Die Klausel wird auf der Registerkarte Benutzergruppe angezeigt. Änderungen am Sicherheitssystem speichern Sie über die Schaltfläche Speichern.

Klauseln für die Zugriffsrechte können beispielsweise den Effekt haben, dass Benutzer nach dem Anlegen eines Objekts, durch das Ändern von Indexdaten oder das Erstellen einer Kopie die Zugriffsrechte auf das gerade bearbeitete Objekt verlieren und dieses danach nicht mehr vorfinden oder recherchieren können.

Klausel-Syntax

Eine Klausel besteht aus einem Feld, einem Operator und einem konstanten oder variablen Wert. Mehrere Klauseln können logisch kombiniert, Kombinationen können durch Klammern strukturiert werden.

Felder

Als Felder stehen die Indexdatenfelder eines Objekts und Basisparameter zur Verfügung. Der Editor bietet in der Vorschlagliste (Strg+Leertaste) alle Felder des Objekts an. Für Dokumenttyp- und Registertypklauseln können ebenfalls die Ordnerfelder einbezogen werden (siehe 'Klauseln mit Ordnerbezug').

Kennzeichnung:

  • Feldnamen mit eckigen Klammern: [An:]
  • Interne Namen mit geschweiften Klammern: {MAIL_TO}
  • Datenbanknamen ohne Klammern: feld1
  • Basisparameter mit Präfix 'sys': sys'creator'

Für den Export und Import in andere Systeme muss die Schreibweise der Feldnamen von Klauseln mit den Daten eines Systems, in das importiert wird, übereinstimmen.

Die folgenden Basisparameter können verwendet werden:

sys'created'

Datum des Anlegens

sys'creator'

Benutzer, der das Objekt angelegt hat

sys'archiver'

Archivar

sys'archived'

Archivierungsdatum

sys'mimetypid'

Mimetyp-ID

sys'modifytime'

Zeitpunkt der letzten Änderung

sys'modifyuser'

Benutzer, der das Objekt zuletzt geändert hat

sys'retention'

Retentionszeit

sys'retention_planned'

Geplante Retentionszeit

Operatoren

Die folgenden Operatoren können verwendet werden:

=

gleich

!=

ungleich

>

größer

<

kleiner

>=

größer oder gleich

<=

kleiner oder gleich

in
not in

enthalten in
nicht enthalten in

between
not between

innerhalb eines Bereichs
nicht innerhalb eines Bereichs

'not' kann ebenfalls einer Klausel aus Feld, Operator und Wert vorangestellt werden.

Konstanten

Konstanten sind abhängig vom Datenbankfeldtyp.

Zeichenfelder

Typ: 'Alle Zeichen', 'Buchstaben', 'Großbuchstaben', 'Ziffern (alphanumerisch)', 'Patientenart', 'Seite', 'Geschlecht', 'Fragen'.

Konstanten für Zeichenfelder werden in Hochkommata geklammert. Sie können Platzhalter enthalten.

Der Platzhalter '?' steht für genau ein Zeichen, der Platzhalter '*' für beliebig viele Zeichen. Platzhalter können sowohl innerhalb als auch am Anfang und am Ende stehen.

Platzhalter können nur für die Operatoren 'gleich' und 'ungleich' verwendet werden.

Wenn Konstanten die Zeichen '*' oder '?' enthalten sollen, dann müssen sie mit '\' maskiert werden. Hochkommata und das Maskierungszeichen '\' müssen ebenfalls maskiert werden.

Für den 'in'-Operator werden Werte in Klammern aufgelistet:

feld1 in ('a','b','c')

Für den 'between'-Operator wird der Bereich so angegeben:

feld1 between 'a' and 'c'

Datum/Zeitfelder

Typ: 'Datum', 'Datum/Zeit' und 'Zeit'.

Konstanten für Datumsfelder wird date vorangestellt. Das Datum wird in Hochkommata geklammert. Notation: YYYY-MM-DD

Beispiel: datum1 = date'2016-09-30'

Konstanten für Datum/Zeitfelder wird datetime vorangestellt. Der Wert wird in Hochkommata geklammert: Notation: YYYY-MM-DD HH-MM-SS

Beispiel: zahl1 = datetime'2016-09-30 11:31:55'

Konstanten für Zeitfelder wird time vorangestellt. Der Wert wird in Hochkommata geklammert: Notation: HH-MM-SS

Beispiel: zahl1 = time'11:31:55'

Die letzten Elemente können sukzessive entfallen, um die Klausel auf Werte unabhängig von diesen Elementen zu beziehen.

Beispiel: zahl1 = datetime'2016'

Dezimal/Ziffernfelder

Typ: 'Dezimal' und 'Ziffern (numerisch)'

Konstanten für Dezimalfelder und nummerischen Ziffernfelder werden nicht geklammert.

Beispiele:

zahl1 >= 400
zahl1 between 300 and 400
real1 in (1.2,2.3,3.4)

Variablen

Die folgenden Variablen können verwendet werden:

#DATE#

aktuelles Datum

#DATETIME#

aktuelles Datum und Zeit

#TIME#

aktuelle Uhrzeit

#USER#

Name des angemeldeten Benutzers

#COMPUTERNAME#

Name des angemeldeten Computers

#COMPUTERGUID#

GUID des angemeldeten Computers

#COMPUTERIP#

IP des angemeldeten Computers

#GROUPS#

Gruppen, in denen der angemeldeten Benutzer Mitglied ist.

Operator ist immer 'in' oder 'not in'.

#RIGHTGROUP#

Rechtegruppen oder Benutzername des angemeldeten Benutzers. Dem angegebenen Feld muss das Rechtegruppen-AddOn oder das Rechtegruppencontrol zugeordnet sein.

Operator ist immer 'in' oder 'not in'.

Für das Rechtegruppencontrol sind ausschließlich #RIGHTGROUP#-Klauseln und 'is null'-Klauseln erlaubt.

#DATE# und #DATETIME# können um Datumsangaben subtrahiert (-) oder addiert (+) werden.

Beispiel: zahl1 = #datetime#-1y2m3w4d

Vom aktuellen Datum/Zeitwert werden 1 Jahr, 2 Monate, 3 Wochen und 4 Tage subtrahiert.

Beispiel: zahl1 = #DATETIME#+2m4d

Zum aktuellen Datum/Zeitwert werden zwei Monate und 4 Tage addiert.

Leere Felder

Klauseln auf leere Felder werden so formuliert:

feld1 is null
feld1 is not null

Die Klausel ist unabhängig davon, ob in der Datenbank Nullwerte erlaubt sind.

Besitzer

Über eine einfache Klausel kann der Zugriff nur dem Benutzer gewährt werden, der Besitzer des Objekts ist:

isowner

Klauseln mit Ordnerbezug

Klauseln auf Registertypen und Dokumenttypen können Bezug auf die Ordnerdaten nehme: die Indexdatenfelder und Basisparameter des Ordnertyps stehen zusätzlich zu den Feldern des Register- oder Dokumenttyps zur Verfügung.

Syntax:

folder ( Ordnerfeld Operator Wert )

Klauseln für einen Ordnertyp können kombiniert werden:

folder ( Ordnerfeld1 Operator Wert1 Operator Ordnerfeld2 Operator Wert2)

Für Dokumenttypen mit Standort in mehreren Ordnern:

folder ( Ordnerfeld1 Operator Wert1 ) Operator folder (Ordnerfeld2 Operator Wert2)

Kombinationen aus Klausel mit Ordnerbezug und Klausel ohne Ordnerbezug:

folder ( Ordnerfeld Operator Wert ) Operator Objektfeld Operator Wert

Beispiel:

Das Ordnerfeld darf nicht leer sein und das Objektfeld darf nicht leer sein.

folder ( [Ordnerfeld] is not null ) and [Objektfeld] is not null

Mit Strg+Leertaste erhalten Sie Eingabeunterstützung durch eine Vorschlagliste.

Bei Dokumenten mit mehreren Standorten schließt das Zugriffsrecht auf einen Standort immer auch den Zugriff auf die anderen Standorte ein.

Beispiel für Klauseln

Das Recht im folgenden Beispiel wird dem aktuellen Benutzer nur gewährt, wenn er auch der Verfasser ist, oder im Indexdatenfeld 'Freigabe an' der Benutzernamen des aktuellen Benutzers eingetragen ist und zusätzlich das Datum im Feld 'Freigabedatum' erreicht oder überschritten ist.

enaio_pic

Das Datenblatt enthält die Felder 'Verfasser', 'Freigabedatum' und 'Freigabe an'. Diese Felder werden für die Klausel benutzt.

Die Klausel wird über den Klausel-Editor erstellt. Sie lautet:

[Verfasser] = #USER# or ([Freigabe an] = #USER# and [Freigabedatum] <= #DATE#)

Die Prüfung zeigt die Klausel mit den aktuellen Werten der Variablen #USER# und #DATE# an.

Klauseln in vorherigen Versionen

Bis zur Version 8.10 wurden Klauseln mit einem Klausel-Editor erstellt. Bestehende Klauseln aus diesen Versionen können weiter verwendet, bearbeitet und im alten Format neu erstellt werden. Nach einer Konvertierung in das aktuelle Format steht der Klausel-Editor nicht mehr zur Verfügung.

Diese Arbeitsschritte führen Sie aus, um eine Klausel mit dem Klausel-Editor in der Version bis 8.10 zu erstellen:

  1. Öffnen Sie das Fenster Sicherheitssystem.
  2. Klicken Sie auf die Registerkarte Benutzergruppen (Zugriffsrechte).
  3. Wählen Sie eine Benutzergruppe aus der Liste Benutzergruppe, markieren Sie im rechten Fenster einen Objekttyp und im unteren Fenster ein vergebenes Recht.
  4. Klicken Sie auf die Schaltfläche Klauseln.

    Der Klausel-Editor wird geöffnet.

    enaio_pic

    Im Bereich Felder finden Sie die Bezeichnung der Indexdatenfelder des markierten Objekttyps. Sie markieren das Feld, für das Sie eine Klausel erstellen.

    Hier finden Sie ebenfalls folgende Werte:

    • #Computer-IP# – die IP-Adresse des Computer des Benutzers,
    • #Computer-GUID# – die GUID des Computers des Benutzers,
    • #Computer-Name# – der Name des Computers des Benutzers.

    Zu Dokumenten finden Sie auch Basisparameterdaten:

    • #Anlagedatum#, #Anleger#, #Archivar#, #Archivierungsdatum#, #Besitzer#, #Retentionzeit#, #PRetentionzeit#.

  5. Im Bereich Verknüpfungen finden Sie die Operatoren, die Sie benutzen können. Markieren Sie einen Operator.
  6. Im Bereich Wert tragen Sie einen Wert für das Feld ein.
  7. Als Platzhalter können Sie bei Werten '*' für beliebige und beliebig viele Zeichen und '?' für ein beliebiges Zeichen benutzen.

    Die folgenden Variablen können Sie zusätzlich benutzen:

    • #Benutzer# – der aktuelle Benutzername,
    • #Datum# – das aktuelle Datum,
    • #Null# – kein Eintrag im Feld,
    • #Gruppen# – die Gruppen, in denen der Benutzer Mitglied ist. Benutzen Sie als Operator 'in' oder '!in'.
    • #Computer-IP# – die IP-Adresse des Computer des Benutzers,
    • #Computer-GUID# – die GUID des Computers des Benutzers,
    • #Computer-Name# – der Name des Computers des Benutzers.
    • #Rechtegruppe# – Gruppen und Benutzer, die über das AddOn 'Rechtegruppen' in das Feld eingetragen sind. Benutzen Sie als Operator 'in' oder '!in'.

    Zu Dokumenten finden Sie auch Basisparameterdaten:

    • #Anlagedatum#, #Anleger#, #Archivar# und #Archivierungsdatum#.
    • Ebenfalls verwenden können Sie die geplante Retentionszeit, #PRetentionzeit#, und die Retentionszeit, #Retentionzeit#.

  8. Klicken Sie anschließend auf die Schaltfläche Hinzufügen.

    Das Feld, den Operator und den Wert haben Sie so zu einer Klausel zusammengefügt. Diese Klausel können Sie noch mit weiteren Klauseln logisch kombinieren. Die gesamte Klausel wird im unteren Feld angezeigt. Die Einträge im Feld Klausel können Sie nicht editieren. Wollen Sie Einträge löschen oder korrigieren, benutzen Sie die Schaltfläche Zurücknehmen.

  9. Bestätigen Sie mit OK.

Die Klausel wird auf der Registerkarte Benutzergruppe angezeigt. Änderungen am Sicherheitssystem speichern Sie über die Schaltfläche Speichern.

Zugriff auf Benutzerlisten

In einigen Kontexten können Benutzer Listen öffnen, in denen alle Benutzer aufgelistet sind. Beispielsweise über die Recherchemaske für Mappen und Basisparameter, über die Konfigurationsdialoge der Ansichtsfilter, über Konfigurationsdialoge der Wiedervorlagen und Abonnements und in weiteren Kontexten.

Ist dieses nicht sinnvoll oder erwünscht, können Sie die Auswahl in allen Benutzerlisten auf diejenigen Benutzer einschränken, die einer der gleichen Gruppen angehören, wie der Benutzer, der eine solche Liste öffnet.

Dazu benötigen Sie folgenden Eintrag in der Datei \etc\as.cfg des Datenverzeichnisses:

[MANDANT]HideOthers=1

Sie können dort eine weitere Zeile anhängen, um zusätzlich einzelne Benutzer, die nicht in der gleichen Gruppe sind, einzuschließen:

Exclude=Benutzer1;Benutzer2

Ändern Sie den Wert für 'HideOthers' auf '0', wird diese Funktion wieder ausgeschaltet.

Benutzer, die Mitglied in der Gruppe 'Standard' sind, sehen immer alle Benutzer in Benutzerlisten. Analog sehen Benutzer innerhalb eines Bereichs der dezentralen Benutzerverwaltung immer alle anderen Benutzer des Bereichs, wenn sie Mitglied der Standardgruppe sind.
Benutzer mit der Systemrolle 'Client: Systempapierkorb anzeigen' sehen immer alle Benutzer in der Benutzerliste des Papierkorbs.