Roluri și domeniu de permisiuni
OpenFactory stochează roluri independente la nivel de organizație, unit și echipă. Numele unui rol descrie un domeniu; nu este o permisiune universală care se aplică automat la fiecare API sau funcție de produs.
Model de domeniu
organization membership: owner | admin | member
└── unit membership: unit_admin | base_creator | base_approver | member
└── team membership: team_lead | variant_creator | variant_deployer | variant_userApartenența la organizație este limita exterioară. Utilizatorul trebuie să fie membru al organizației înainte ca un administrator să îl poată adăuga la un unit sau echipă. Apartenența se verifică independent la fiecare nivel; nu deduceți un rol de unit sau echipă dintr-un rol de organizație afișat în alt context.
Roluri de organizație
API-ul actual de administrare a organizației impune aceste permisiuni:
| Operație | Owner | Admin | Member |
|---|---|---|---|
| Vizualizare organizație, membri, groups, units și echipe | Da | Da | Da |
| Editare nume sau descriere organizație | Da | Da | Nu |
| Creare, editare sau ștergere groups și administrare membri group | Da | Da | Nu |
| Invitare sau eliminare membri obișnuiți | Da | Da | Nu |
| Schimbare roluri member/admin obișnuite | Da | Da | Nu |
| Invitare sau promovare la owner | Da | Nu | Nu |
| Schimbare sau eliminare owner existent | Da | Nu | Nu |
| Creare sau ștergere units | Da | Da | Nu |
| Ștergere organizație | Da | Nu | Nu |
| Părăsire organizație | Da, exceptând cazul în care este singurul owner | Da | Da |
O organizație poate avea mai mult de un owner. API-ul împiedică plecarea singurului owner
până când există alt owner sau organizația este ștearsă. În acest API nu există
o acțiune separată „transfer ownership“; un owner schimbă rolul altui membru în owner,
apoi poate modifica sau elimina owner-ul anterior după cum este necesar.
Roluri unit
Owner-ii și adminii organizației pot administra fiecare unit. În cadrul unui unit, API-ul
actual de administrare a organizației acordă unit_admin următoarele operații administrative:
- editare unit;
- adăugare, eliminare și schimbare roluri membri unit;
- creare, editare și ștergere echipe în acel unit;
- adăugare și administrare membri echipă în acel unit.
Doar un owner sau admin al organizației poate șterge unit-ul în sine.
base_creator, base_approver și unit member sunt etichete de rol stocate pentru
politica workflow base image. Rutele CRUD ale organizației nu dovedesc singure că
fiecare acțiune de creare, aprobare sau implementare impune aceste etichete în altă parte. Înainte
de a vă baza pe ele ca pe control, verificați comportamentul de autorizare al workflow-ului
concret de build sau aprobare.
Roluri echipă
Owner/admin organizație și unit_admin al unit-ului părinte pot administra apartenența
la echipă. Un team_lead poate:
- edita numele sau descrierea echipei;
- adăuga și elimina membri echipă;
- schimba rolurile membrilor echipei.
Un team_lead nu poate șterge echipa prin API-ul actual al organizației; această operație
este rezervată owner/admin organizație sau unit_admin părinte.
variant_creator, variant_deployer și variant_user exprimă responsabilitățile
intenționate în workflow variant. Nu le interpretați ca dovadă că fiecare endpoint variant
impune o matrice completă create/edit/deploy. Testați workflow-ul exact
și căile refuzate în versiunea implementată.
Groups sunt diferite
Groups sunt colecții de partajare la nivel de organizație, nu o altă ierarhie de roluri. Owner și admin creează groups și administrează apartenența la group; toți membrii organizației pot lista groups și membrii acestora. Apartenența la group nu transformă un utilizator în admin organizație, admin unit sau team lead.
Schimbare sigură a unui rol
- Confirmați organizația, unit sau echipa țintă.
- Înregistrați apartenențele efective actuale ale utilizatorului în toate cele trei domenii.
- Aplicați o singură schimbare de rol.
- Testați o operație permisă și una refuzată cu sesiunea proprie a utilizatorului.
- Verificați că starea UI din cache și sesiunile existente reflectă schimbarea.
- Păstrați un înregistrare de audit în afara etichetei de rol dacă politica o cere.
Schimbarea etichetei fără test al căii refuzate nu este o dovadă suficientă că se aplică privilegiul minim.
Cazuri limită frecvente
- Un admin nu poate promova pe nimeni la owner și nu poate schimba rolul unui owner existent.
- Un utilizator nu poate fi adăugat la unit sau echipă până când aparține organizației.
- Membrii unit și echipă se pot elimina singuri; apartenența la organizație rămâne dacă nu este eliminată separat.
- După eliminarea apartenenței la organizație, verificați în versiunea dvs. efecte învechite asupra unit, echipă, group, share și sesiuni.
- Culorile insignelor UI sunt prezentare, nu control de securitate. Bazați-vă pe autorizarea server-side și pe testele căilor refuzate.