Dokumentation der Loomio-Server-API

/api/b3 dient für Vorgänge auf Serverebene. Verwende /api/b2 für Aktionen, die über ein Loomio-Benutzerkonto ausgeführt werden.

Authentifizierung

Lege für B3_API_KEY einen geheimen Wert mit mehr als 16 Zeichen fest.

Sende den Schlüssel als Bearer-Token:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users

Sende Zugangsdaten ausschließlich im Authorization-Header. API-Schlüssel in URL-Parametern oder im Anfragetext werden abgelehnt.

Benutzerobjekt

Antworten mit Benutzerdaten haben diese Struktur:

{
  "id": 123,
  "name": "Ada Lovelace",
  "username": "ada",
  "email": "ada@example.org",
  "active": true,
  "deactivated_at": null,
  "identities": [
    {
      "id": 456,
      "identity_type": "oauth",
      "uid": "external-123",
      "email": "ada@example.org",
      "name": "Ada Lovelace"
    }
  ]
}

Benutzer auflisten

Liste alle Benutzerkonten der Loomio-Installation auf.

GET /api/b3/users

Beispiel

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users

Antwort:

{
  "users": []
}

Benutzer anzeigen

Finde einen Benutzer anhand seiner Loomio-Benutzer-ID oder externen Identität.

GET /api/b3/users/:id

GET /api/b3/users/identity/:identity_type/:uid

Beispiele

Anhand der Loomio-Benutzer-ID:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123

Anhand der externen Identität:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123

Antwort:

{
  "user": {}
}

Benutzer aktualisieren

Aktualisiere die Profilfelder eines Benutzers, den du anhand seiner Loomio-Benutzer-ID oder externen Identität gefunden hast.

PATCH /api/b3/users/:id

PATCH /api/b3/users/identity/:identity_type/:uid

Parameter

Feld Beschreibung
name Anzeigename
username Loomio-Benutzername
email E-Mail-Adresse

Beispiele

Anhand der Loomio-Benutzer-ID:

curl -X PATCH \
  -H 'Authorization: Bearer YOUR_SERVER_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"user":{"name":"Ada Lovelace","username":"ada","email":"ada@example.org"}}' \
  https://www.loomio.com/api/b3/users/123

Anhand der externen Identität:

curl -X PATCH \
  -H 'Authorization: Bearer YOUR_SERVER_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"user":{"name":"Ada Lovelace","username":"ada","email":"ada@example.org"}}' \
  https://www.loomio.com/api/b3/users/identity/oauth/external-123

Antwort mit dem aktualisierten Benutzer:

{
  "user": {}
}

Benutzer deaktivieren

Deaktiviere ein Benutzerkonto anhand seiner Loomio-Benutzer-ID oder externen Identität.

POST /api/b3/users/:id/deactivate

POST /api/b3/users/identity/:identity_type/:uid/deactivate

Beispiele

Anhand der Loomio-Benutzer-ID:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/deactivate

Anhand der externen Identität:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/deactivate

Antwort:

{
  "success": true,
  "user": {}
}

Benutzer reaktivieren

Reaktiviere ein deaktiviertes Benutzerkonto anhand seiner Loomio-Benutzer-ID oder externen Identität.

POST /api/b3/users/:id/reactivate

POST /api/b3/users/identity/:identity_type/:uid/reactivate

Beispiele

Anhand der Loomio-Benutzer-ID:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/reactivate

Anhand der externen Identität:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/reactivate

Antwort:

{
  "success": true,
  "user": {}
}

Benutzerdaten anonymisieren

Bei der Anonymisierung bleiben die Kommentare und anderen Inhalte des Benutzers in seinen Gruppen erhalten. Bekannte personenbezogene Daten werden entfernt, darunter Name, Biografie, Profilfoto, E-Mail-Adresse, Anmeldedaten, Identitäten und aktive Sitzungen.

Dies ist die empfohlene Methode, um einen Benutzer aus Loomio zu entfernen.

POST /api/b3/users/:id/redact

POST /api/b3/users/identity/:identity_type/:uid/redact

Beispiele

Anhand der Loomio-Benutzer-ID:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/redact

Anhand der externen Identität:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/redact

Antwort:

{
  "success": true
}

Benutzerkonto löschen

Beim Löschen werden das Benutzerkonto und die von der Person erstellten Einträge entfernt. Kommentare werden aus Diskussionen und Stimmen aus Abstimmungen entfernt. Auch Gruppen, Diskussionen, Abstimmungen und andere von der Person erstellte Einträge können über Datenbankverknüpfungen gelöscht werden.

Dabei können viele Daten verloren gehen. Stattdessen wird dringend empfohlen, das Benutzerkonto zu anonymisieren.

DELETE /api/b3/users/:id

DELETE /api/b3/users/identity/:identity_type/:uid

Beispiele

Anhand der Loomio-Benutzer-ID:

curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123

Anhand der externen Identität:

curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123

Antwort:

{
  "success": true
}

Einstellungen für den SSO-Profilabgleich

Verwende diese Einstellungen, wenn ein anderes System die Loomio-Profilfelder verwaltet.

LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1

LOOMIO_DISABLE_EDIT_USER_PROFILE=1 verhindert, dass Nutzer diese Felder selbst bearbeiten:

Feld Hinweise
name Wird durch externen Abgleich verwaltet
username Wird durch externen Abgleich verwaltet
email Wird durch externen Abgleich verwaltet
avatar_kind / uploaded_avatar Wird durch externen Abgleich verwaltet

Nutzer können weiterhin Felder bearbeiten, die nur in Loomio verwaltet werden, etwa short_bio und location.

LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 aktualisiert name und email anhand der SSO-Anmeldedaten. Lass die Zeile auskommentiert oder die Variable ungesetzt, wenn nur ein externes Abgleichskript diese Felder aktualisieren soll.

LOOMIO_SSO_FORCE_USER_ATTRS funktioniert weiterhin bei bestehenden Installationen. Die Einstellung verhindert, dass Nutzer ihr Profil selbst bearbeiten, und aktualisiert name und email bei der SSO-Anmeldung.