Supprimer les relations d’héritage d’un rôle
La suppression d’une relation de parenté à un rôle cible se fait en connaissant l’UUID de ce rôle.
Comme pour l’ajout d’une relation d’héritage, cette suppression peut être effectuée soit en mentionnant l’UUID, le slug, ou le nom du rôle parent (pour cette dernière option, le nom doit être unique).
Cette suppression se fait via le verbe DELETE sur l’URI
/api/roles/<UUID du rôle cible>/relationships/parents/
en mentionnant en payload DELETE, soit l’UUID
{"parent": {"uuid": "abc"}}
soit le slug
{"parent": {"slug": "role-lambda"}}
soit le nom
{"parent": {"name": "Role Lambda"}}
du rôle parent.
En retour, l’endpoint renvoie la liste des rôles parents directs existants pour ce rôle une fois la suppression effectuée.
Si cet appel doit être fait depuis w.c.s., par exemple à l’aide de l’action Webservice, les données de payload doivent être mentionnées en gabarit Django et donc il n’est pas possible de construire un dictionnaire en valeur du dictionnaire principal de payload (c’est-à-dire qu’aucune imbrication n’est possible).
Dans ce cas, il convient d’utiliser la syntaxe spécifique à Authentic pour reconstruire des données composées à partir de données “à plat” (comportement “unflatten” de l’API).
Par exemple, un appel depuis w.c.s. en mentionnant le slug du rôle parent comporterait le payload DELETE suivant :
{"parent/slug": "role-lambda"}
(À noter que "role-lambda" peut alors correspondre à la valeur d’une variable w.c.s. dans l’interface clé-valeur du définition du payload d’un appel Webservice w.c.s.)