Přeskočit obsah

Služby

Entity: Service, ServiceCategory, ServicePackage, TherapistService

Prověřeno proti commitu: rozpracováno

Testy: backend/tests/Feature/Audit/SluzbyAuditTest.php

Routy

Routa Perimetr Ochrana Controller
GET/POST/PUT/DELETE /api/serviceCategories interní oprávnění services EntityCrudController CRUD
GET/POST/PUT/DELETE /api/services interní oprávnění services EntityCrudController CRUD
GET/POST/PUT/DELETE /api/servicePackages interní oprávnění services EntityCrudController CRUD
GET/POST/PUT/DELETE /api/therapistServices interní oprávnění availability EntityCrudController CRUD
GET /api/public/serviceCategories veřejný katalog bez middleware EntityCrudController::publicList
GET /api/public/services veřejný katalog bez middleware, volitelné public filtry EntityCrudController::publicList
GET /api/public/servicePackages veřejný katalog bez middleware, volitelné public filtry EntityCrudController::publicList
GET /api/public/therapistServices veřejný katalog bez middleware, volitelné public filtry EntityCrudController::publicList

Opravené nálezy

SLU-04 — Veřejný list služeb bez filtru může vrátit interní/neaktivní služby (střední)

Stav: opraveno

Test: SLU-04: veřejný list služeb bez filtru nevrací interní a neaktivní služby

Ověřený fakt — public list podporuje filtry is_active a online_booking_enabled, ale nevynucuje je jako výchozí omezení. Pokud klient zavolá endpoint bez q, dostane i interní nebo vypnuté služby.

Oprava — public list services má výchozí filtry is_active = 1 a online_booking_enabled = 1; explicitní public filtry je mohou dál zúžit.

Dopad — klientský katalog může zobrazit služby, které nemají být veřejně rezervovatelné.

SLU-05 — Veřejný list kategorií služeb není omezený na firmu (nízká)

Stav: opraveno

Test: SLU-05: veřejný list kategorií služeb nevrací kategorie jiné firmy

Ověřený fakt — public list kategorií služeb neaplikuje tenantový filtr.

Oprava — public katalogové endpointy služeb používají tenant scope. Bez staff session se v single-tenant režimu omezí na první aktivní firmu.

Dopad — při více firmách by veřejný katalog mohl vrátit kategorie jiné firmy.

SLU-06 — Veřejný list vazeb terapeut-služba není omezený na firmu (střední)

Stav: opraveno

Test: SLU-06: veřejný list vazeb terapeut-služba nevrací vazby jiné firmy

Ověřený fakt — public list therapistServices neaplikuje tenantový filtr, pokud není použit konkrétní filtr.

Oprava — public list therapistServices používá stejný tenant scope jako služby a výchozí filtr is_active = 1.

Dopad — veřejné plánování může pracovat s vazbami terapeutů a služeb jiné firmy.

Ověřené bez nálezu

  • Interní endpointy služeb nejsou dostupné anonymně.
  • Veřejný list služeb s explicitním filtrem is_active=true a online_booking_enabled=true vrací jen aktivní online služby.
  • Veřejný list balíčků s explicitním filtrem is_active=true vrací jen aktivní balíčky.