Uloge i opseg dopuštenja
OpenFactory pohranjuje neovisne uloge na razini organizacije, unit i tima. Naziv uloge opisuje opseg; to nije univerzalno dopuštenje koje se automatski primjenjuje na svaki API ili svaku značajku produkta.
Model opsega
organization membership: owner | admin | member
└── unit membership: unit_admin | base_creator | base_approver | member
└── team membership: team_lead | variant_creator | variant_deployer | variant_userČlanstvo u organizaciji vanjska je granica. Korisnik mora biti član organizacije prije nego što ga administrator može dodati u unit ili tim. Članstvo se provjerava neovisno na svakoj razini; ne zaključujte ulogu unit ili tima iz organizacijske uloge prikazane u drugom kontekstu.
Organizacijske uloge
Trenutačni API za upravljanje organizacijom provodi ova dopuštenja:
| Operacija | Owner | Admin | Member |
|---|---|---|---|
| Pregled organizacije, članova, groups, units i timova | Da | Da | Da |
| Uređivanje naziva ili opisa organizacije | Da | Da | Ne |
| Stvaranje, uređivanje ili brisanje groups i upravljanje članovima group | Da | Da | Ne |
| Pozivanje ili uklanjanje običnih članova | Da | Da | Ne |
| Promjena uloga običnih member/admin | Da | Da | Ne |
| Poziv ili unapređenje na owner | Da | Ne | Ne |
| Promjena ili uklanjanje postojećeg owner | Da | Ne | Ne |
| Stvaranje ili brisanje units | Da | Da | Ne |
| Brisanje organizacije | Da | Ne | Ne |
| Napuštanje organizacije | Da, osim ako je jedini owner | Da | Da |
Organizacija može imati više od jednog owner. API sprječava da jedini owner
ode dok ne postoji drugi owner ili organizacija nije obrisana. U ovom API
nema zasebne akcije „transfer ownership“; owner promijeni ulogu drugog člana u owner,
zatim po potrebi promijeni ili ukloni prethodnog owner.
Uloge unit
Owner i admin organizacije mogu upravljati svakim unit. Unutar unit trenutačni API
za upravljanje organizacijom dodjeljuje unit_admin ove administrativne operacije:
- uređivanje unit;
- dodavanje, uklanjanje i promjena uloga članova unit;
- stvaranje, uređivanje i brisanje timova u tom unit;
- dodavanje i upravljanje članovima tima u tom unit.
Sam unit mogu obrisati samo owner ili admin organizacije.
base_creator, base_approver i unit member pohranjene su oznake uloga za
politiku workflow base image. CRUD rute organizacije same po sebi ne dokazuju da
svaka akcija stvaranja, odobrenja ili implementacije drugdje provodi te oznake. Prije
oslanjanja na njih kao na kontrolu provjerite ponašanje autorizacije konkretnog workflow
build ili odobrenja.
Uloge tima
Owner/admin organizacije i unit_admin nadređenog unit mogu upravljati članstvom
u timu. team_lead može:
- uređivati naziv ili opis tima;
- dodavati i uklanjati članove tima;
- mijenjati uloge članova tima.
team_lead ne može obrisati tim putem trenutačnog organizacijskog API; ta operacija
rezervirana je za owner/admin organizacije ili nadređeni unit_admin.
variant_creator, variant_deployer i variant_user izražavaju predviđene
odgovornosti u workflow variant. Ne tumačite ih kao dokaz da svaka krajnja točka
variant provodi potpunu matricu create/edit/deploy. Testirajte točan workflow
i odbijene putove u implementiranoj verziji.
Groups su drugačiji
Groups su kolekcije za dijeljenje na razini organizacije, ne još jedna hijerarhija uloga. Owner i admin stvaraju groups i upravljaju članstvom u group; svi članovi organizacije mogu popisati groups i njihove članove. Članstvo u group ne pretvara korisnika u admina organizacije, admina unit ili team lead.
Sigurna promjena uloge
- Potvrdite ciljnu organizaciju, unit ili tim.
- Zabilježite trenutačna učinkovita članstva korisnika u sva tri opsega.
- Primijenite jednu promjenu uloge.
- Testirajte dopuštenu i odbijenu operaciju u sesiji tog korisnika.
- Provjerite da predmemorirani UI i postojeće sesije odražavaju promjenu.
- Zadržite revizijski zapis izvan oznake uloge ako to vaša politika zahtijeva.
Promjena oznake bez testa odbijenog puta nije dovoljan dokaz provođenja najmanjih prava.
Uobičajeni rubni slučajevi
- Admin ne može nikoga unaprijediti na owner niti promijeniti ulogu postojećeg owner.
- Korisnika nije moguće dodati u unit ili tim dok ne pripada organizaciji.
- Članovi unit i tima mogu se sami ukloniti; članstvo u organizaciji ostaje osim ako se zasebno ne ukloni.
- Nakon uklanjanja članstva u organizaciji provjerite u vašoj verziji zastarjele učinke na unit, tim, group, share i sesije.
- Boje znački u UI su prezentacija, ne sigurnosna kontrola. Oslonite se na autorizaciju na poslužitelju i testove odbijenih putova.