Vai al contenuto
TechPYRE
Valkiria FluidodinamicaPortale ordini · oleodinamica industriale
ClienteOfficine Meccaniche Lario S.p.A.

Permessi per ruolo

Cosa può vedere e fare ogni ruolo. Tutto ciò che non è concesso è negato, anche lato server.

Matrice permessi

Buyer: 6 su 15 permessi

Matrice dei permessi per ruolo
PermessoBuyerTier-1AgenteAmministrazione
Consultazione catalogo tecnicocatalog:read
Prezzi netti da contrattoprice:view_contract
Costo industrialeprice:view_cost
Margini e provvigioniprice:view_margin
Override listino (sconto extra)price:override
Gestione carrellocart:edit
Emissione ordineorder:submit
Pagamento Stripe (carta / SEPA DD)payment:stripe
Bonifico 60 gg DFFMpayment:deferred_terms
Esenzione IVA art. 8 c.1 lett. c)tax:exemption_declare
Consultazione fatture SDIinvoice:read
Esportazione XML FatturaPAinvoice:export_xml
Log webhook Stripewebhook:read_log
Replay eventi webhookwebhook:replay
Ispezione architetturaarchitecture:inspect
Come viene applicato
  • Interfaccia: legge la stessa matrice per nascondere colonne e disabilitare azioni.
  • Server: le API rifiltrano costo e margine e rispondono 403 alle azioni non autorizzate.
  • In produzione: il ruolo arriva dalla sessione firmata, mai dal client.
// src/lib/rbac.ts — matrice deny-by-default
export function can(role: Role, permission: Permission): boolean {
  return ROLE_PERMISSIONS[role].has(permission);
}

// Route Handler: la verifica è ripetuta lato server
if (!can(session.role, "order:submit")) {
  return apiError(403, "forbidden", "...", "order:submit");
}