Vloge in obseg dovoljenj
OpenFactory hrani neodvisne vloge na ravni organizacije, unit in ekipe. Ime vloge opisuje obseg; ni univerzalno dovoljenje, ki bi se samodejno nanašalo na vsak API ali vsako funkcijo produkta.
Model obsega
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 v organizaciji je zunanja meja. Uporabnik mora biti član organizacije, preden ga administrator doda v unit ali ekipo. Članstvo se preverja neodvisno na vsaki ravni; ne sklepajte vloge unit ali ekipe iz organizacijske vloge, prikazane v drugem kontekstu.
Organizacijske vloge
Trenutni API za upravljanje organizacije uveljavlja ta dovoljenja:
| Operacija | Owner | Admin | Member |
|---|---|---|---|
| Ogled organizacije, članov, groups, units in ekip | Da | Da | Da |
| Urejanje imena ali opisa organizacije | Da | Da | Ne |
| Ustvarjanje, urejanje ali brisanje groups in upravljanje članov group | Da | Da | Ne |
| Vabilo ali odstranitev navadnih članov | Da | Da | Ne |
| Sprememba vlog navadnih member/admin | Da | Da | Ne |
| Vabilo ali napredovanje na owner | Da | Ne | Ne |
| Sprememba ali odstranitev obstoječega owner | Da | Ne | Ne |
| Ustvarjanje ali brisanje units | Da | Da | Ne |
| Brisanje organizacije | Da | Ne | Ne |
| Zapustitev organizacije | Da, razen če je edini owner | Da | Da |
Organizacija lahko ima več kot enega owner. API prepreči, da edini owner
odide, dokler ne obstaja drug owner ali organizacija ni izbrisana. V tem API
ni ločene akcije „transfer ownership“; owner spremeni vlogo drugega člana v owner,
nato po potrebi spremeni ali odstrani prejšnjega owner.
Vloge unit
Owner in admin organizacije lahko upravljata vsak unit. Znotraj unit trenutni API
za upravljanje organizacije unit_admin podeli te administrativne operacije:
- urejanje unit;
- dodajanje, odstranjevanje in spreminjanje vlog članov unit;
- ustvarjanje, urejanje in brisanje ekip v tem unit;
- dodajanje in upravljanje članov ekipe v tem unit.
Sam unit lahko izbrišeta le owner ali admin organizacije.
base_creator, base_approver in unit member so shranjene oznake vlog za
politiko workflow base image. Poti CRUD organizacije same po sebi ne dokazujejo,
da vsako dejanje ustvarjanja, odobritve ali uvajanja drugje uveljavlja te oznake. Pred
zanašanjem nanje kot na kontrolo preverite obnašanje avtorizacije konkretnega workflow
build ali odobritve.
Vloge ekipe
Owner/admin organizacije in unit_admin nadrejenega unit lahko upravljata članstvo
v ekipi. team_lead lahko:
- ureja ime ali opis ekipe;
- dodaja in odstranjuje člane ekipe;
- spreminja vloge članov ekipe.
team_lead ne more izbrisati ekipe prek trenutnega organizacijskega API; ta operacija
je rezervirana za owner/admin organizacije ali nadrejeni unit_admin.
variant_creator, variant_deployer in variant_user izražajo predvidene
odgovornosti v workflow variant. Ne jih razlagajte kot dokaz, da vsaka končna točka
variant uveljavlja popolno matriko create/edit/deploy. Preizkusite natančen workflow
in zavrnjene poti v uvedeni različici.
Groups so drugačni
Groups so zbirke za deljenje na ravni organizacije, ne še ena hierarhija vlog. Owner in admin ustvarjata groups in upravljata članstvo v group; vsi člani organizacije lahko izpišejo groups in njihove člane. Članstvo v group uporabnika ne spremeni v admina organizacije, admina unit ali team lead.
Varno spreminjanje vloge
- Potrdite ciljno organizacijo, unit ali ekipo.
- Zabeležite trenutna učinkovita članstva uporabnika v vseh treh obsegih.
- Uveljavite eno spremembo vloge.
- Preizkusite dovoljeno in zavrnjeno operacijo v seji tega uporabnika.
- Preverite, da predpomnjeni UI in obstoječe seje odražajo spremembo.
- Hranite revizijski zapis zunaj oznake vloge, če to zahteva vaša politika.
Sprememba oznake brez preizkusa zavrnjene poti ni zadosten dokaz uveljavljanja najmanjših pravic.
Pogosti robni primeri
- Admin ne more nikogar napredovati na owner ali spremeniti vloge obstoječega owner.
- Uporabnika ni mogoče dodati v unit ali ekipo, dokler ne pripada organizaciji.
- Člani unit in ekipe se lahko odstranijo sami; članstvo v organizaciji ostane, razen če ga ločeno odstranite.
- Po odstranitvi članstva v organizaciji preverite v vaši različici zastarele učinke na unit, ekipo, group, share in seje.
- Barve značk v UI so predstavitev, ne varnostni nadzor. Zanašajte se na avtorizacijo na strežniku in preizkuse zavrnjenih poti.