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=trueaonline_booking_enabled=truevrací jen aktivní online služby. - Veřejný list balíčků s explicitním filtrem
is_active=truevrací jen aktivní balíčky.