Skip to Content
OrganizationsRoluri și domeniu de permisiuni

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_user

Apartenenț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țieOwnerAdminMember
Vizualizare organizație, membri, groups, units și echipeDaDaDa
Editare nume sau descriere organizațieDaDaNu
Creare, editare sau ștergere groups și administrare membri groupDaDaNu
Invitare sau eliminare membri obișnuițiDaDaNu
Schimbare roluri member/admin obișnuiteDaDaNu
Invitare sau promovare la ownerDaNuNu
Schimbare sau eliminare owner existentDaNuNu
Creare sau ștergere unitsDaDaNu
Ștergere organizațieDaNuNu
Părăsire organizațieDa, exceptând cazul în care este singurul ownerDaDa

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

  1. Confirmați organizația, unit sau echipa țintă.
  2. Înregistrați apartenențele efective actuale ale utilizatorului în toate cele trei domenii.
  3. Aplicați o singură schimbare de rol.
  4. Testați o operație permisă și una refuzată cu sesiunea proprie a utilizatorului.
  5. Verificați că starea UI din cache și sesiunile existente reflectă schimbarea.
  6. 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.