= roles()
:description: Gibt die ECMSystemRole-Werte eines Benutzers zurück (mng.GetUserRoles). Systemrollen steuern den Modulzugriff (DMS, Workflow, Admin) unabhängig von Gruppenrechten.
:keywords: roles, mng.GetUserRoles, ECMSystemRole, Systemrollen, DMS, Workflow, Admin
:page-tags: api, security

Gibt die dem Benutzer zugewiesenen Systemrollen als Liste von `ECMSystemRole`-Enum-Werten zurück.
Ohne Angabe einer `user_guid` werden die Rollen des aktuell angemeldeten Benutzers abgerufen.

== Signatur

[tabs]
====
Sync::
+
[source,python]
----
ecm.security.roles(user_guid: str = "") -> list[ECMSystemRole]
----

Async::
+
[source,python]
----
await ecm.security.roles(user_guid: str = "") -> list[ECMSystemRole]
----
====

== Parameter

[cols="1,1,3"]
|===
|Parameter |Standard |Beschreibung

|`user_guid`
|`""`
|GUID des Benutzers, dessen Rollen abgerufen werden sollen.
Leerer String (Standard) gibt die Rollen des aktuell angemeldeten Benutzers zurück.
|===

[NOTE]
====
Das Abfragen der Rollen eines anderen Benutzers erfordert die Systemrolle `ADMIN_CONFIGURE_SECURITY`.
Unbekannte Rollen-IDs (nicht im `ECMSystemRole`-Enum vorhanden) werden stillschweigend übersprungen.
====

== Rückgabewert

Liste von `ECMSystemRole`-Enum-Werten. Leere Liste, wenn dem Benutzer keine Rollen zugewiesen sind.

== Beispiele

=== Eigene Rollen prüfen

[tabs]
====
Sync::
+
[source,python]
----
from ecmind_blue_client.ecm import ECMSystemRole

roles = ecm.security.roles()
if ECMSystemRole.ADMIN_CONFIGURE_SECURITY in roles:
    print("Benutzer darf Sicherheitseinstellungen konfigurieren")

for role in roles:
    print(role.name, role.value)
----

Async::
+
[source,python]
----
from ecmind_blue_client.ecm import ECMSystemRole

roles = await ecm.security.roles()
if ECMSystemRole.ADMIN_CONFIGURE_SECURITY in roles:
    print("Benutzer darf Sicherheitseinstellungen konfigurieren")

for role in roles:
    print(role.name, role.value)
----
====

=== Rollen eines anderen Benutzers prüfen

Erfordert die Systemrolle `ADMIN_CONFIGURE_SECURITY`:

[tabs]
====
Sync::
+
[source,python]
----
from ecmind_blue_client.ecm import ECMSystemRole

user = ecm.security.user("john")
if user:
    roles = ecm.security.roles(user.guid)
    print([r.name for r in roles])
----

Async::
+
[source,python]
----
from ecmind_blue_client.ecm import ECMSystemRole

user = await ecm.security.user("john")
if user:
    roles = await ecm.security.roles(user.guid)
    print([r.name for r in roles])
----
====

== Siehe auch

* xref:api/security/users.adoc[users()] — Alle Benutzerkonten abrufen
* xref:api/security/user.adoc[user()] — Attribute eines einzelnen Benutzers abrufen
