Aller au contenu

Gérer les attributs

Un attribut, comme le service ou le bureau d'un membre, est un fait que les règles peuvent lire. Cette page montre comment définir un attribut, quelles valeurs il peut avoir, et comment donner une valeur à des membres et à des groupes. Ce que sont les attributs est expliqué dans Rôles et accès.

org-admin peut définir, modifier et supprimer des attributs. Donner une valeur est possible à qui peut modifier le membre ou le groupe, comme people-admin, s'il a lui-même cette valeur ; org-admin peut donner n'importe quelle valeur. Les attributs n'ont pas encore d'écran dans OS : vous les gérez via l'API. Les exemples utilisent $OS, $TOKEN et $ORG comme dans Gérer les groupes.

Définir un attribut

curl -s -X POST "$OS/api/v1/organisations/$ORG/attributes" \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    -d '{"name": "department", "allowed_values": ["sales", "finance"], "multiple": true}'

OS répond 201 :

{"id": "atd_...", "name": "department", "allowed_values": ["sales", "finance"],
 "multiple": true, "version": 1, "allowed_actions": ["see", "use", "write", "delete"]}
  • name : lettres, chiffres et _ . : -, 64 caractères au maximum. role, group, subject, os_toolbox, os_offered, os_element, os_audience, os_assistant, os_element_editor, os_project, os_project_chats, os_project_files, os_visitor, os_desk, os_consultant, os_editor_scope et os_kb sont lus par OS lui-même et ne peuvent pas être définis.
  • allowed_values : les valeurs que l'attribut peut avoir. Si vous l'omettez, toute valeur est acceptée. Avec une liste fixe, OS refuse aussi une règle qui nomme une autre valeur, pour qu'une faute de frappe ne reste pas sans effet en silence.
  • multiple : si un membre ou un groupe peut avoir plus d'une valeur. Une seule par défaut.

Une organisation définit 16 attributs au maximum : les 32 qu'un membre peut porter, moins role, group, os_toolbox, os_offered, os_element, os_audience, os_assistant, os_element_editor, os_project, os_project_chats, os_project_files, os_visitor, os_desk, os_consultant, os_editor_scope et os_kb, qu'OS pose lui-même. En outre, OS compte ensemble combien d'attributs et d'étiquettes les règles de votre organisation, et de chaque organisation située en dessous, utilisent : 32 au maximum. Un nouvel attribut qui ferait dépasser cette limite à une organisation est refusé par OS avec 409.

Modifier les valeurs autorisées

PUT .../attributes/department remplace allowed_values et multiple dans leur ensemble, avec la version que vous avez lue dans If-Match. OS refuse avec 409 si la modification casserait quelque chose :

  • un membre ou un groupe a une valeur qui ne figure plus dans la liste : retirez-la d'abord ;
  • une règle nomme une valeur qui ne figure plus dans la liste, dans votre propre organisation ou dans une organisation en dessous : modifiez d'abord cette règle ;
  • vous désactivez multiple alors que quelqu'un a plus d'une valeur : retirez-les d'abord.

Donner une valeur

curl -s -X POST "$OS/api/v1/organisations/$ORG/attribute-values" \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    -d '{"attribute": "department", "value": "sales", "member_id": "mem_..."}'

Indiquez member_id pour un membre ou group_id pour un groupe ; une valeur d'un groupe, chaque membre du groupe l'a. La réponse a un identifiant comme mat_... (sur un membre) ou gat_... (sur un groupe).

  • GET .../attribute-values?member_id=mem_... ou ?group_id=grp_... affiche les valeurs qu'un membre ou un groupe a lui-même, pas celles reçues par des groupes.
  • DELETE .../attribute-values/mat_... retire une valeur.

Un membre a 32 valeurs au maximum par attribut, chacune de 256 caractères au maximum.

Supprimer un attribut

DELETE .../attributes/department supprime l'attribut et chacune de ses valeurs, chez les membres, chez les groupes et dans les invitations en attente. Si une règle lit encore l'attribut, dans votre propre organisation ou dans une organisation en dessous qui ne le définit pas elle-même, OS refuse avec 409 ; modifiez d'abord cette règle.

Quand OS refuse

Réponse Signification Ce que vous faites
403 Vous n'en avez pas le droit, ou vous donnez une valeur que vous n'avez pas vous-même ; le message indique alors l'attribut (« a value of department »). Demandez à un administrateur.
404 L'attribut, la valeur, le membre ou le groupe n'existe pas, ou vous n'avez pas le droit de le voir. Vérifiez le nom ou l'identifiant.
409 Le nom est déjà utilisé, il y a déjà 16 attributs, l'attribut a été modifié depuis votre lecture, la valeur y a déjà été donnée, l'attribut n'autorise qu'une valeur et elle existe déjà, un membre dépasserait une limite de 32, votre organisation ou une organisation en dessous utiliserait plus de 32 attributs et étiquettes, ou une modification ou une suppression casserait une valeur ou une règle. Lisez le message et nettoyez d'abord ce qu'il nomme.
422 La requête est incorrecte : un nom qu'OS utilise lui-même (role, group, subject, os_toolbox, os_offered, os_element, os_audience, os_assistant, os_element_editor, os_project, os_project_chats, os_project_files, os_visitor, os_desk, os_consultant, os_editor_scope, os_kb), un attribut inconnu, une valeur que la liste n'autorise pas, ou member_id et group_id ensemble (ou aucun des deux). Lisez detail ou errors dans la réponse.