Fshi një rol
Çdo rol përveç owner-it, dhe vetëm pasi të keni thënë ku shkojnë mbajtësit e tij.
Ekzekuton thirrjen reale kundrejt hapësirës suaj të punës, me çelësin tuaj.
DELETE /roles/{id}
Çdo rol përveç owner-it, dhe vetëm pasi të keni thënë ku shkojnë mbajtësit e tij.
Shembull
Kërkon roles:write. reassignTo emërton rolin te i cili kalojnë çdo anëtar dhe çdo çelës API të këtij roli.
curl -X DELETE "$OE/roles/role_2b81de079c1f0a4b7e05d386?reassignTo=role_c40a95f21cc65d31c2a89e07" \ -H "$AUTH"{ "object": "role", "id": "role_2b81de079c1f0a4b7e05d386", "deleted": true, "reassigned": 3, "keysReassigned": 1}reassignTo udhëton si parametër QUERY dhe jo brenda një body-je. Një body në DELETE është i ligjshëm dhe gjerësisht i pambështetur (disa runtime e heqin, po ashtu edhe një numër proxy-sh), dhe një reassignTo i hequr nuk dallohet nga një që nuk u dërgua kurrë, që është pikërisht rasti të cilin ky endpoint e refuzon në vend që ta hamendësojë.
Ai është i detyrueshëm në momentin që dikush e mban rolin: pa të, role_in_use, një 409, që mbart param: "reassignTo", e cila është zgjidhja e vërtetë. Kolona poshtë është ON DELETE RESTRICT, prandaj nuk ka rrugë ku fshirja e një roli të ndryshojë në heshtje atë që mund të bëjë dikush.
Çelësat API ridrejtohen në vend që të mbeten jetimë, dhe kjo është gjysma delikate. Një çelës roli i të cilit zhduket do të binte te një tavan NULL, dhe një tavan null është më i GJERË se roli që sapo iku, pra fshirja e një roli kufizues do të promovonte në heshtje çdo çelës që ai kufizonte.
Të dy numërimet janë të ndara sepse janë dy gjëra të ndryshme për t'i shkuar e për t'i kontrolluar: reassigned janë njerëz, të cilët do ta vënë re, ndërsa keysReassigned janë programe, të cilat nuk do ta vënë re.
Roli owner nuk mund të fshihet (role_undeletable, një 409) sepse ai emërton llogarinë me të cilën është çelësuar hapësira e punës, jo një punë që bën dikush. Çdo rol tjetër mund të ikë, edhe Admin, Member, Viewer, Developer e Billing fillestarë, po aq sa edhe një rol që e shkroi dikush: ata janë një pikënisje, dhe një hapësirë pune pa integrime nuk ka nevojë për një rresht Developer të cilin nuk i lejohet ta heqë. Kontrolloni deletable përpara se të ofroni butonin; vetëm owner-i përgjigjet false.
Fshirja e një roli FILLESTAR nuk është e përhershme, prandaj mos e formuloni dialogun sikur të ishte. GET /roles rikrijon çdo rresht shablloni që mungon, dhe një fshirje nuk lë asnjë gur varri, prandaj leximi i radhës i listës e kthen Developer nën një id të ri. Riemërtimi i tij është ajo që e bën të mos kthehet më (një rresht i riemërtuar e ruan builtin-in e tij dhe vazhdon të bjerë ndesh me atë fillestar), ose e bën edhe një rol tjetër që merr emrin, meqë krijuesi fillestar e kapërcen një rresht emri i të cilit është i zënë.