Smazání role
Jakákoli role kromě vlastníka, a to až poté, co řeknete, kam její držitelé přejdou.
Spustí skutečné volání proti vašemu pracovnímu prostoru, s vaším vlastním klíčem.
DELETE /roles/{id}
Jakákoli role kromě vlastníka, a to až poté, co řeknete, kam její držitelé přejdou.
Příklad
Vyžaduje roles:write. reassignTo pojmenovává roli, na kterou přejde každý člen i každý API klíč z této role.
curl -X DELETE "$OE/roles/role_2b81de079c1f0a4b7e05d386?reassignTo=role_c40a95f21cc65d31c2a89e07" \ -H "$AUTH"{ "object": "role", "id": "role_2b81de079c1f0a4b7e05d386", "deleted": true, "reassigned": 3, "keysReassigned": 1}reassignTo putuje jako QUERY parametr, ne v těle. Tělo u DELETE je legální a široce nepodporované (několik běhových prostředí ho zahazuje a stejně tak řada proxy) a zahozené reassignTo je k nerozeznání od toho, které nebylo nikdy odesláno – a právě tenhle případ tenhle endpoint odmítá, místo aby hádal.
Je povinné ve chvíli, kdy tu roli někdo drží: bez něj role_in_use, 409, nesoucí param: "reassignTo", což je skutečná náprava. Sloupec je pod tím ON DELETE RESTRICT, takže neexistuje cesta, kde by smazání role tiše změnilo, co někdo může dělat.
API klíče se přesměrují, místo aby osiřely, a to je ta záludná půlka. Klíč, jehož role zmizela, by spadl na NULL strop, a null strop je ŠIRŠÍ než role, která právě zmizela, takže smazání restriktivní role by jinak tiše povýšilo každý klíč, který omezovala.
Ty dva počty jsou oddělené, protože jde o dvě různé věci, které je potřeba jít zkontrolovat: reassigned jsou lidé, kteří si toho všimnou, a keysReassigned jsou programy, které si toho nevšimnou.
Roli vlastníka smazat nelze (role_undeletable, 409), protože pojmenovává účet, na který je workspace navázán, a ne práci, kterou někdo dělá. Každá jiná role může zmizet, seedované Admin, Member, Viewer, Developer i Billing stejně jako ta, kterou někdo napsal: jsou to výchozí bod a workspace bez integrací nemá co dělat s řádkem Developer, kterého se nesmí zbavit. Než nabídnete tlačítko, zkontrolujte deletable; false odpovídá jen vlastník.
Smazání SEEDOVANÉ role není trvalé, takže dialog tak neformulujte. GET /roles znovu naseeduje každý chybějící šablonový řádek a po smazání nezůstane žádný náhrobek, takže další čtení výpisu vrátí Developer zpátky pod novým id. Přestane se vracet, až ho přejmenujete (přejmenovaný řádek si ponechá svůj builtin a dál koliduje se seedem), nebo když ten název zabere jiná role, protože seeder řádek s obsazeným názvem přeskočí.