Documentation de l’API du serveur Loomio

/api/b3 sert aux opérations au niveau du serveur. Utilisez /api/b2 pour les actions effectuées avec un compte utilisateur Loomio.

Authentification

Définissez B3_API_KEY avec une valeur secrète de plus de 16 caractères.

Envoyez la clé comme jeton Bearer :

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

Envoyez les identifiants uniquement dans l’en-tête Authorization. Les clés API placées dans la chaîne de requête ou le corps de la requête sont refusées.

Objet utilisateur

Les réponses concernant un utilisateur ont cette structure :

{
  "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"
    }
  ]
}

Lister les utilisateurs

Listez tous les comptes utilisateurs de l’installation Loomio.

GET /api/b3/users

Exemple

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

Renvoie :

{
  "users": []
}

Afficher un utilisateur

Recherchez un utilisateur par son identifiant utilisateur Loomio ou son identité externe.

GET /api/b3/users/:id

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

Exemples

Par identifiant utilisateur Loomio :

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

Par identité externe :

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

Renvoie :

{
  "user": {}
}

Mettre à jour un utilisateur

Mettez à jour les champs du profil d’un utilisateur recherché par son identifiant utilisateur Loomio ou son identité externe.

PATCH /api/b3/users/:id

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

Paramètres

Champ Description
name Nom affiché
username Nom d’utilisateur Loomio
email Adresse e-mail

Exemples

Par identifiant utilisateur Loomio :

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

Par identité externe :

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

Renvoie l’utilisateur mis à jour :

{
  "user": {}
}

Désactiver un utilisateur

Désactivez un compte utilisateur recherché par son identifiant utilisateur Loomio ou son identité externe.

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

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

Exemples

Par identifiant utilisateur Loomio :

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

Par identité externe :

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

Renvoie :

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

Réactiver un utilisateur

Réactivez un compte utilisateur désactivé recherché par son identifiant utilisateur Loomio ou son identité externe.

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

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

Exemples

Par identifiant utilisateur Loomio :

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

Par identité externe :

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

Renvoie :

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

Effacer les données personnelles d’un utilisateur

L’effacement des données personnelles conserve les commentaires et les autres contenus créés par l’utilisateur dans ses groupes. Il supprime les informations personnelles connues, notamment le nom, la biographie, la photo de profil, l’adresse e-mail, les identifiants de connexion, les identités et les sessions actives.

C’est la méthode recommandée pour retirer un utilisateur de Loomio.

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

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

Exemples

Par identifiant utilisateur Loomio :

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

Par identité externe :

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

Renvoie :

{
  "success": true
}

Supprimer un utilisateur

La suppression efface le compte utilisateur et les données créées par cette personne. Ses commentaires sont retirés des fils de discussion et ses votes des sondages. Les groupes, discussions, sondages et autres données qu’elle a créés peuvent aussi être supprimés par les associations de la base de données.

Cette opération entraîne de nombreuses suppressions. Il est fortement recommandé d’anonymiser le compte à la place.

DELETE /api/b3/users/:id

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

Exemples

Par identifiant utilisateur Loomio :

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

Par identité externe :

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

Renvoie :

{
  "success": true
}

Paramètres de synchronisation du profil par SSO

Utilisez ces paramètres lorsqu’un autre système gère les champs du profil Loomio.

LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1

LOOMIO_DISABLE_EDIT_USER_PROFILE=1 empêche les utilisateurs de modifier eux-mêmes ces champs :

Champ Remarques
name Géré par la synchronisation externe
username Géré par la synchronisation externe
email Géré par la synchronisation externe
avatar_kind / uploaded_avatar Géré par la synchronisation externe

Les utilisateurs peuvent toujours modifier les champs propres à Loomio, comme short_bio et location.

LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 met à jour name et email à partir des données de connexion SSO. Laissez ce paramètre en commentaire ou ne le définissez pas si seul un script de synchronisation externe doit effectuer ces mises à jour.

LOOMIO_SSO_FORCE_USER_ATTRS fonctionne toujours sur les installations existantes. Ce paramètre empêche les utilisateurs de modifier leur profil et met à jour name et email lors de la connexion SSO.