Der aktuelle Benutzer bestimmt die Berechtigungen. Diese werden im Folgenden beschrieben. Neben den normalen Benutzern gibt es den “System User”, dieser hat prinzipiell alle Rechte zum Lesen, Erstellen, Bearbeiten und Löschen.

Bei der Implementierung eigener Funktionalitäten, muss man überlegen, mit welchen Berechtigungen die Funktionalität ausgeführt wird. Beispielsweise kann man sie im Kontext des System User ausführen.

using (Api.User.NewSystemUserContext())
{ }

Es ist ebenfalls möglich die Funktionalität mit den Berechtigungen eines anderen Benutzers auszuführen.

using (Api.User.NewLocalUserContext(currentUserGuid))
{ }

Wenn man einen Thread startet, kennt dieser den aktuellen Benutzer nicht. Einen Thread mit den Berechtigungen erhält man mit

Task async = Api.User.RunWithContext(() => { ...; });

Wird eine eigene Library implementiert, in der man keine Informationen darüber hat, ob sie grade im Vordergrund oder im Hintergrund ausgeführt wird, kann man einen Thread davon abhängig starten, ob die Ausführung gerade im Vordergrund stattfindet oder nicht.

Api.User.RunWithContextIfForeground(() => { ...; })