Aller à la documentation
API

Changer le rôle d'un membre

Le rôle et rien d'autre. Les adresses sont l'autre axe et disposent de leurs propres appels.

PATCHapi.openemail.uk/members/{userId}

Exécute le véritable appel sur votre espace de travail, avec votre propre clé.

PATCH /members/{userId}

Le rôle et rien d'autre. Les adresses sont l'autre axe et disposent de leurs propres appels.

Exemple

Nécessite members:write. roleId est le seul champ, et il est obligatoire. Cet appel nomme l'état qu'il veut plutôt qu'un changement à appliquer : l'envoyer deux fois aboutit donc à la même personne détenant le même rôle.

curl
curl -X PATCH "$OE/members/7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a" -H "$AUTH" \  -H "Content-Type: application/json" \  -d '{ "roleId": "role_2b81de079c1f0a4b7e05d386" }'
Réponse
{  "object": "member",  "userId": "7fQ2mN8vBz1aRd4tYwKx7fQ2mN8vBz1a",  "email": "[email protected]",  "name": null,  "image": null,  "role": {    "id": "role_2b81de079c1f0a4b7e05d386",    "name": "Support",    "builtin": null  },  "implied": false,  "permissions": [    "emails:send",    "emails:read",    "threads:read",    "threads:write",    "labels:read",    "labels:write",    "contacts:read"  ],  "addresses": [    {      "addressId": "c40a95f2-1cc6-4d31-82a8-9e075d31c2a8",      "address": "[email protected]",      "access": "viewer"    }  ],  "createdAt": "2026-08-30T15:44:02.000Z"}

Les adresses ne sont PAS modifiables depuis ici, et l'omission est délibérée : c'est un ensemble doté d'un niveau d'accès par élément, et un PATCH portant un tableau devrait signifier un remplacement intégral, c'est-à-dire une révocation massive et silencieuse chaque fois qu'un client envoie une liste périmée. Les deux appels d'adresses ajoutent et retirent une adresse à la fois, si bien que ce qui s'est passé est toujours ce qui a été demandé.

C'est aussi ainsi qu'un détenteur d'octrois hérités cesse d'être implied : il n'a pas de ligne de membre, cet appel en insère une, et à partir de là ses permissions sont ce que quelqu'un a choisi plutôt que ce que son accès aux adresses impliquait. Remarquez implied qui bascule à false et createdAt qui apparaît dans la réponse ci-dessus. Rien ne change concernant ses adresses.

Le rôle owner ne peut pas être attribué (role_immutable, un 409), quels que soient les droits de l'appelant. Faire de quelqu'un un propriétaire relève d'un transfert d'espace de travail, qui a d'autres conséquences et n'existe pas sur cette API.

Son nouveau rôle prend effet à sa prochaine requête, et à la prochaine requête de chaque clé API qu'il plafonne.