Autentificare & RBAC

Modele de autentificare

Sesiune (cookie) — pentru utilizatori interni

Utilizator + parolă (sau PIN pentru POS):

Notă: 2FA/TOTP + Single Sign-On (Active Directory / Google Workspace / Microsoft 365) nu sunt accesibile în mod implicit la moment. Se pot activa ca integrare custom Enterprise la cerere — ofertate individual.

Bearer token — pentru integrări server-to-server

Pentru clienți care vor să integreze platforma cu propriile lor sisteme:

X-Auth-Token — pentru parteneri B2B

Token specializat pentru:

Public — pentru storefront e-commerce

Anumite endpoint-uri sunt accesibile fără autentificare (catalogul public, status comenzi, captcha image).

RBAC (Role-Based Access Control)

Filozofie

Familii de drepturi

Folder operations

FOLDER_GROUP__VIEW           — vede produse / categorii
FOLDER_GROUP__EDIT           — modifică
FOLDER_GROUP__DELETE         — șterge (cu audit)
FOLDER_INVOICE__VIEW         — vede facturi
FOLDER_INVOICE__CHANGE_STAGE — avansează fluxul facturii

Stock operations

STOCK_TRANSFER:POS:<src>:<dst>     — transferă între POS-uri specifice
STOCK_TRANSFER__INTERNAL           — transferuri în general
STORAGE_STOCK_LOGS                 — vede istoricul stocului

Fiscal & SFS

FISCAL_PUSH_CASH_REGISTER          — emite bon fiscal
E_FACTURA_STOCK_SELL:POS:<pos>     — emite e-Factura
E_FACTURA_VIEW                     — vede facturile emise

HoReCa specific

PLAN_ORDER__CREATE:CONTEXT:horeca:POS:<pos>     — deschide comenzi pe masă
PLAN_ORDER__SEND_TO_DIVISION:CONTEXT:horeca     — trimite la divizii
PLAN_ORDER__EDIT:CONTEXT:horeca                 — editează note custom pe comandă (header / footer bon)
HORECA_PRODUCTION__ACCEPT:DIVISION:<div>        — acceptă bonuri kitchen
HORECA_WRITEOFF__APPROVE                        — aprobă pierderi
HORECA_WRITEOFF__APPLY:POS:<pos>                — aplică imediat scoaterea din stoc la pierdere
HORECA_FISCAL__EMIT:POS:<pos>                   — emite bon fiscal HoReCa

Admin

SYSTEM__USER_MANAGEMENT            — creează / dezactivează utilizatori
SYSTEM__ROLE_MANAGEMENT            — definește roluri
SYSTEM__SETTINGS                   — modifică setări globale
DOCS_VIEW                          — accesează documentația
HORECA_STOCK__INVERSE_ADJUSTMENT   — aplică pierdere cu cantitate pozitivă (= adaugă stoc, corecție inventar)

Scoping — sintaxă

PERMISIUNE                         — drept general
PERMISIUNE:POS:<pos-id>            — limitat la un POS
PERMISIUNE:POS:<src>:<dst>         — limitat la o pereche POS-uri
PERMISIUNE:DIVISION:<div-id>       — limitat la o divizie
PERMISIUNE:CONTEXT:<ctx>           — limitat la un context (horeca/production)
PERMISIUNE:POS:POS-*               — wildcard: toate POS-urile cu prefix POS-
PERMISIUNE:POS:?                   — wildcard: orice POS unic-caracter

Definirea unui rol

Roluri sunt fișiere text simple (admin le poate edita din UI sau direct). Exemplu pentru casier_b2c:

# Rol: casier B2C standard
# Vinde, emite bonuri, dar fără e-Factura B2B și fără modificări catalog.

FISCAL_PUSH_CASH_REGISTER
FOLDER_GROUP__VIEW
FOLDER_INVOICE__VIEW
STORAGE_STOCK_LOGS

# Comentariile cu # sunt ignorate la încărcare

Apoi atribui rolul utilizatorului:

# Utilizator: maria.casier
ROLE: casier_b2c

# Plus override-uri specifice:
HORECA_FISCAL__EMIT:POS:POS-sala  # are dreptul și pe HoReCa

Cazuri reale de scoping

# Casier de la sala 1, doar acolo, doar B2C
user maria:
    FISCAL_PUSH_CASH_REGISTER:POS:POS-sala1

# Manager regional, vede 2 magazine, nu vinde
user andrei:
    FOLDER_INVOICE__VIEW:POS:POS-001
    FOLDER_INVOICE__VIEW:POS:POS-002
    STORAGE_STOCK_LOGS:POS:POS-001
    STORAGE_STOCK_LOGS:POS:POS-002

# Admin general
user sergiu:
    *  # toate drepturile, oriunde

Audit acces

Fiecare login este logat:

Login-uri suspecte (ex. multe încercări eșuate) → automate alerte la admin.

Securitate adițională

Brute-force protection

Notă: parametrii exacți (câte încercări → cât timp blocare) sunt configurați server-side, nu prin UI. CAPTCHA vizuală, politică parolă cu istoric ("nu poți repeta ultimele 5"), și IP whitelist nu sunt accesibile în mod implicit la moment. Toate sunt ⚙️ dezvoltabile la cerere Enterprise custom.

Performanță

Următorul pas

Stoc & audit sau Multilingv & taxonomie.