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.

Cette page a été traduite automatiquement. Si un mot est incorrect ou peu clair, écrivez à contact@loomio.org et nous le corrigerons.