Documentation de l’API du serveur Loomio
/api/b3 est destiné 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 sur une valeur secrète de plus de 16 caractères.
Envoyez la clé sous forme de jeton Bearer :
curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users
Envoyez les informations d’authentification uniquement dans l’en-tête Authorization. Les clés API présentes dans les chaînes de requête ou les corps de requête sont rejetées.
Objet utilisateur
Les réponses contenant des utilisateurs suivent 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 à partir de son identifiant utilisateur Loomio ou de 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 trouvé à partir de son identifiant utilisateur Loomio ou de 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 trouvé à partir de son identifiant utilisateur Loomio ou de 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é en le recherchant 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 de l’utilisateur et les autres contenus qu’il a créés au sein de ses groupes, mais supprime les informations connues permettant de l’identifier, telles que son nom, sa biographie, sa photo de profil, son adresse e-mail, ses identifiants de connexion, ses identités et ses 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 retire l’utilisateur et les enregistrements qu’il a créés. Les commentaires sont supprimés des fils, les votes sont supprimés des sondages, et les groupes, discussions, sondages et autres enregistrements créés par l’utilisateur peuvent également être supprimés par le biais des associations de la base de données.
Cette opération est très destructive. L’effacement des données personnelles est fortement recommandé à 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 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 | Notes |
|---|---|
name |
Géré par une synchronisation externe |
username |
Géré par une synchronisation externe |
email |
Géré par une synchronisation externe |
avatar_kind / uploaded_avatar |
Gérés par une synchronisation externe |
Les utilisateurs peuvent toujours modifier les champs propres à Loomio, tels que 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 non défini lorsqu’un script de synchronisation externe doit être la seule source de ces mises à jour.
LOOMIO_SSO_FORCE_USER_ATTRS fonctionne toujours pour les installations existantes. Ce paramètre empêche les utilisateurs de modifier ces champs et met à jour name et email lors de la connexion SSO.