check_permission()

Prüft, ob der aktuelle Benutzer die angeforderten Berechtigungen auf einem Objekt besitzt, über DMS.CheckPermission (einzelnes Flag) oder DMS.CheckPermissions (mehrere Flags).

Um zu prüfen, ob ein Objekt an einem bestimmten Ort eingefügt werden darf, wird 0 als model übergeben, write=True gesetzt und der Zielort über folder_id oder register_id angegeben.

1. Signatur

  • Sync

  • Async

ecm.dms.check_permission(
    model: _ECMModelBase | int,
    object_type_id: int | None = None,
    *,
    read: bool = False,
    write: bool = False,
    execute: bool = False,
    delete: bool = False,
    update: bool = False,
    folder_id: int | ECMFolderModel | None = None,
    register_id: int | ECMRegisterModel | None = None,
    register_type: int | None = None,
) -> bool
await ecm.dms.check_permission(
    model: _ECMModelBase | int,
    object_type_id: int | None = None,
    *,
    read: bool = False,
    write: bool = False,
    execute: bool = False,
    delete: bool = False,
    update: bool = False,
    folder_id: int | ECMFolderModel | None = None,
    register_id: int | ECMRegisterModel | None = None,
    register_type: int | None = None,
) -> bool

2. Parameter

Parameter Typ Standard Beschreibung

model

_ECMModelBase | int

Entweder eine ECM-Modell-Instanz (deren id wird verwendet) oder eine numerische Objekt-ID. 0 übergeben, um die Einfügeberechtigung an einem über folder_id / register_id angegebenen Ort zu prüfen.

object_type_id

int | None

None

Die numerische Objekttyp-ID. Wenn None und model nicht 0 ist, wird der Typ automatisch über get_object_type_by_id() ermittelt.

read

bool

False

Prüft die Berechtigung zum Lesen von Indexdaten (R).

write

bool

False

Prüft die Berechtigung zum Schreiben von Indexdaten (W).

execute

bool

False

Prüft die Berechtigung zum Öffnen/Ausführen (X).

delete

bool

False

Prüft die Löschberechtigung (D).

update

bool

False

Prüft die Berechtigung zum Aktualisieren des Objekts (U).

folder_id

int | ECMFolderModel | None

None

ID des Ordners oder eine ECMFolderModel-Instanz für standortbasierte Berechtigungsprüfungen.

register_id

int | ECMRegisterModel | None

None

ID des übergeordneten Registers oder eine ECMRegisterModel-Instanz für standortbasierte Berechtigungsprüfungen.

register_type

int | None

None

Typ des übergeordneten Registers. 0 bedeutet, das Objekt befindet sich direkt auf Ordnerebene, -1 bedeutet registerunabhängig.

Mindestens eines der Flags read, write, execute, delete oder update muss True sein.

3. Zugriffsflags

Flag Parameter Beschreibung

R

read

Indexdaten des Objekts lesen.

W

write

Indexdaten des Objekts schreiben.

X

execute

Objekt öffnen oder ausführen.

D

delete

Objekt löschen.

U

update

Objekt aktualisieren (Dateien ersetzen).

Wenn ein einzelnes Flag abgefragt wird, wird der Serveraufruf DMS.CheckPermission verwendet. Wenn mehrere Flags abgefragt werden, wird stattdessen DMS.CheckPermissions verwendet.

4. Rückgabewert

True, wenn der Benutzer alle angeforderten Berechtigungen besitzt, andernfalls False.

5. Ausnahmen

Ausnahme Bedingung

ValueError

model ist eine Modell-Instanz mit id gleich None, oder keines der Berechtigungsflags ist True.

ECMNotFoundException

object_type_id ist None, model ist nicht 0, und kein Objekt mit der angegebenen ID existiert auf dem Server.

6. Beispiele

6.1. Leseberechtigung auf einem Dokument prüfen

  • Sync

  • Async

doc = ecm.dms.get(InvoiceDocument, 12345)
if ecm.dms.check_permission(doc, read=True):
    print("Read access granted")
doc = await ecm.dms.get(InvoiceDocument, 12345)
if await ecm.dms.check_permission(doc, read=True):
    print("Read access granted")

6.2. Mehrere Berechtigungen gleichzeitig prüfen

  • Sync

  • Async

if ecm.dms.check_permission(12345, read=True, write=True, delete=True):
    print("Full access")
else:
    print("Restricted access")
if await ecm.dms.check_permission(12345, read=True, write=True, delete=True):
    print("Full access")
else:
    print("Restricted access")

6.3. Einfügeberechtigung an einem Ordner-Speicherort prüfen

  • Sync

  • Async

folder = ecm.dms.select(InvoiceFolder).execute()[0]
if ecm.dms.check_permission(0, object_type_id=327685, write=True, folder_id=folder):
    print("Insert allowed in this folder")
folder = (await ecm.dms.select(InvoiceFolder).execute())[0]
if await ecm.dms.check_permission(0, object_type_id=327685, write=True, folder_id=folder):
    print("Insert allowed in this folder")

7. Siehe auch