Zum Hauptinhalt springen

User

Benutzer gehören zu einem Tenant und tragen Rollen, die festlegen, was sie tun dürfen. Öffentliche v2-Endpoints verwenden snake_case-Schlüssel und sind in der OpenAPI-Spezifikation dokumentiert; die wichtigsten Punkte finden Sie unten.

Endpoints​

  • GET /api/v2/users — paginierte Liste der Tenant-Benutzer (ohne Service-Accounts).
  • POST /api/v2/users — legt einen Benutzer an. Die E-Mail-Adresse wird beim Anlegen gesetzt und kann nicht mehr geändert werden.
  • PUT /api/v2/users/{user_id} — vollständiger Austausch (alle beschreibbaren Felder erforderlich).
  • PATCH /api/v2/users/{user_id} — JSON Merge Patch (RFC 7386). Felder weglassen, um sie unverändert zu lassen; ein Feld auf null setzen, um es zu leeren. lock_version ist erforderlich.

Payloads​

Create (POST /api/v2/users)​

{
"email": "bea@example.com",
"firstname": "Bea",
"lastname": "Smith",
"role_ids": ["4b3c2d1e-9a8b-4c6d-8e0f-1234567890ab"],
"phone_number": "+43123456789",
"external_id": "crm-1234"
}

Antwort (created):

{
"id": "1ec2dffe-2a5b-4c59-9ea2-9f0c3c5ab5af",
"email": "bea@example.com",
"roles": ["OWNER", "DISPATCHER"],
"firstname": "Bea",
"lastname": "Smith",
"created_at": "2024-01-15T10:30:00Z",
"status": "ACTIVE"
}

Replace (PUT /api/v2/users/{user_id})​

{
"firstname": "Bea",
"lastname": "Smith",
"phone_number": "+43123456789",
"external_id": "crm-1234",
"role_ids": ["4b3c2d1e-9a8b-4c6d-8e0f-1234567890ab"],
"lock_version": 3
}

Patch (PATCH /api/v2/users/{user_id})​

Content-Type: application/merge-patch+json (application/json wird als Alias akzeptiert)

{
"lock_version": 3,
"firstname": "Bea Updated",
"phone_number": null
}

Hinweise:

  • Die E-Mail-Adresse kann nach dem Anlegen nicht mehr geändert werden.
  • role_ids darf niemals leer sein; geben Sie branch_group_id an, wenn Rollen branch-spezifisch sind oder ein Benutzer mehreren Branch-Gruppen angehört.

Rollen​

Listet die Rollen des aktuellen Tenants mit ihren aktivierten Grants auf:

GET /api/v2/roles
{
"items": [
{
"id": "4b3c2d1e-9a8b-4c6d-8e0f-1234567890ab",
"name": "dispatcher",
"role_type": "DISPATCHER",
"grants": ["getUsers", "updateUser"]
},
{
"id": "9f3b8e71-766f-4d5d-b9b4-8d57b92a9d52",
"name": "driver",
"role_type": "DRIVER",
"grants": ["getUsers"]
}
]
}