export_security_system()
Exportiert die auf Gruppenebene definierten Klauseln des Sicherheitssystems und die zugehörigen Rechte-Bitfelder. Liefert je Gruppe × Cabinet × Objekttyp einen Eintrag mit den gesetzten Hauptrechten, den Annotations-Rechten und den optional konfigurierten Klauseln.
Das Sicherheitssystem kennt zwei Mechanismen, die parallel wirken: Klauseln auf Gruppenebene (dieser Job) und ACL-Regeln auf Objektebene (dms.ReadSD).
1. Signatur
-
Sync
-
Async
ecm.security.export_security_system(group_ids: list[int] | None = None) -> ECMSecuritySystemExport
await ecm.security.export_security_system(group_ids: list[int] | None = None) -> ECMSecuritySystemExport
2. Parameter
| Parameter | Standard | Beschreibung |
|---|---|---|
|
|
Liste numerischer Gruppen-IDs (siehe |
3. Rückgabewert
ECMSecuritySystemExport mit drei Feldern:
| Feld | Typ | Beschreibung |
|---|---|---|
|
|
Server-seitiger Erstellzeitpunkt aus dem |
|
|
Eine Liste der |
|
|
Die im Export berücksichtigten Gruppen. |
3.1. ECMGroupClause-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
|
|
Numerische ID der Gruppe. |
|
|
Name der Gruppe. |
|
|
Numerische ID des Cabinets. |
|
|
Anzeigename des Cabinets. |
|
|
Numerische ID des Objekttyps. Auflösung über |
|
|
Anzeigename des Objekttyps. |
|
|
Bitfeld der gesetzten Hauptrechte. |
|
|
Bitfeld der gesetzten Annotations-Rechte. |
|
|
Klausel für D (Objekt löschen). Leerer String, wenn keine Klausel konfiguriert. |
|
|
Klausel für W (Indexdaten schreiben). |
|
|
Klausel für X (Objekt ausgeben). |
|
|
Klausel für U (Objekt schreiben). |
|
|
Klausel für R (Indexdaten anzeigen) — historisch „Hilfsrecht". |
|
|
Legacy-Attribut, immer leer; kann ignoriert werden. |
4. Beispiele
4.1. Alle Gruppen exportieren
-
Sync
-
Async
export = ecm.security.export_security_system()
print(export.timestamp)
for grp in export.exported_groups:
print(grp.id, grp.name)
export = await ecm.security.export_security_system()
4.2. Konfigurierte Lösch-Klauseln pro Gruppe finden
export = ecm.security.export_security_system()
for clause in export.group_clauses:
if clause.delete_clause:
print(f"{clause.group_name} / {clause.object_type_name}: {clause.delete_clause}")
4.3. Filterung auf einzelne Gruppen
export = ecm.security.export_security_system(group_ids=[100, 200])
4.4. Auswertung der Rechte als Flag-Set
from ecmind_blue_client.ecm import ECMObjectRight
export = ecm.security.export_security_system()
for clause in export.group_clauses:
if ECMObjectRight.D in clause.rights and clause.delete_clause:
# Gruppe darf löschen, aber nur wenn die Klausel zutrifft.
print(clause.group_name, clause.object_type_name, clause.delete_clause)
5. Klausel-Sprache
Die *_clause-Strings sind die rohen Server-Klauseln. Wichtigste Regeln:
-
Klauseln beginnen mit dem Syntax-Versions-Prefix
BCCF. -
Feldreferenzen
greifen auf die DB-Spalten des Objekts zu (feldN,zahlN,realN,datumN). Auflösung auf interne Feldnamen viaecm.system.definition(). -
sys'<name>'referenziert Basisparameter (z.B.sys’modifyuser'). -
folder( <ausdruck> )wertet den eingeklammerten Ausdruck im Kontext des umschließenden Ordners aus. Auf Ordner-Objekttypen nicht zulässig. -
Operatoren:
=,!=,>,<,>=,⇐,in,not in,between,not between,and,or. -
Variablen:
DATE,DATETIME,TIME,USER,GROUPS,RIGHTGROUP,COMPUTERNAME,COMPUTERGUID,COMPUTERIP.
6. Siehe auch
-
groups() — liefert die Gruppen mit ihren
id-Feldern fürgroup_ids -
group() — Detail-Attribute einer einzelnen Gruppe
-
ecm.system.definition() — Auflösung von
cabinet_id,object_type_idund DB-Spalten auf Anzeigenamen / interne Namen