KENNIS IN VERBINDING / ANALYSE 03.10.2026
TRACEERBAARHEID

user-perspectives.md

Feitelijke analyse op 3 oktober 2026. Codebevindingen zijn geen garantie voor foutloos of daadwerkelijk gebruikt runtimegedrag.

← Alle bronnen

Perspectieven en aantoonbare use-cases

Identiteit en autorisatie

XLSLMFHandler::authorization accepteert een geldig gevormd Bearer-UUID en zoekt een actieve lmf_user. Login zoekt email + SHA256-password + actief en vereist een bestaand token; werkt last_login/last_login_from bij. Rolbooleans worden op de server gebruikt.

Let op verschillende prioriteiten: handle_request kiest hub → klant → leverancier → logistiek; role kiest klant → leverancier → hub → logistiek. Meerdere true-flags kunnen daardoor afwijkende rolresponse en endpointtoegang geven. Een algemene beleidslaag per object is niet aanwezig in LMF.pm.

React kiest routes op rolstrings supplier/hub/logistics/customer. Menu's filteren extraRoleCondition (dashboard/stops); RequireAuth controleert van de extra conditions alleen stops. UI-verbergen bewijst geen backendautorisatie.

Leverancier

| Actie → frontend | Backend → data → resultaat | |---|---| | Order-/productoverzicht → SupplierOrders/SupplierProducts | orders/order_regels/products → eigen vers_order + regels + producten → aantallen per order/product/datum | | Dashboard → SupplierDashboard | supplier_dashboard → eigen orders/productgroepen → aantallen en top 10 | | Leveringen → SupplierDeliveries/SupplierDeliveryDetail | supplier_deliveries → eigen pakbonnen, locaties/catalogus → gegroepeerde leveringen/detail | | Nieuwe levering → NewSupplierDelivery | new_supplier_delivery → pakbon/footer/emballage → nieuwe pakbon bij ontbreken supplier+location+date | | Bevestigen → SupplierDeliveryDetail | confirm_delivery → actorbevestiging en geleverd_volgens_leverancier → code/message; retourinput niet verwerkt | | Levering aanpassen (API) | update_supplier_delivery → geleverd + footer → geen aangetoonde frontendcall in deze build | | Connector → externe afnemer, niet React | download_orders (status 1), assignment, connector/log → orderexport, HUB-opdracht/registratie, log |

Supplier-login bevat locations, packages/package_type, navigator, show_orders, dashboard, driver/signature en configuratie. orders_in_lmf wordt teruggegeven; SupplierRoutes bevat voor orders geen extraRoleCondition. Backend-orders blijft op leverancier_id begrensd. Bevestiging begrenst de pakbon bij leverancierrol; update_supplier_delivery zoekt alleen op guid.

HUB

| Actie → frontend | Backend → data → resultaat | |---|---| | Inkomend → HubIncoming/HubDeliveries | hub_incoming → pakbon + registratie/catalogus → leverancier/datum en aantallen | | Uitgaand → HubOutgoing/HubDeliveries | hub_outgoing → dezelfde tabellen, nu locatie/datum → klantzendingen | | Ontvangst/retour bij leverancierzijde | hub_incoming_deliveries → inkomend/uitgaand, bevestigd → update/insert | | Uitgifte/retour bij klantzijde | hub_outgoing_deliveries → uitgaand/inkomend, bevestigd → insert/update | | Dashboard → HubDashboard | hub_dashboard → orders/productgroepen op hub=user.leverancier_id | | Kaart-/routegegevens (API) | hub_customers/suppliers/orders, hub_routes/vehicles, productdetails → coords/order/route/capaciteit; geen calls vanuit de geverifieerde React-build | | Emballagecontrole (API) | EmballageControl → drie registratiebronnen → overview/detail, afwijkingen, ontbrekend/ambigu; eigen HUB verplicht |

De productdetail-endpoints gebruiken aangeleverde customer_id/supplier_id en datum zonder extra HUB-eigendomsfilter in hun SQL. Niet gelijkstellen aan de sterke HUB-scope van EmballageControl.

Logistiek

| Actie → frontend | Backend → data → resultaat | |---|---| | Mijn leveringen → LogisticsDeliveries | logistics_deliveries → user.route, route_lokatie, pakbonregels, project/marktplaats → gesorteerde leveringen | | Mijn ritten → LogisticsStops | stops → route_lokatie + pakbon + stopregistratie → afgeleide stops; volgorde gaat daarna via hashes | | Stop registreren → LogisticsStopDetail | stop → pickup_stop/delivery_stop → opgehaald/afgeleverd + actor/tijd/pakbonlink | | Nieuwe levering accepteren → NewLogisticsDeliveries/LogisticDeliveryDetail | new_supplier_deliveries + accept_new_delivery → vrije LMF-pakbon, status 0→1, transporteur | | Bevestigen → LogisticDeliveryDetail | confirm_delivery → pakbonbevestiging; geen actieve statuswijziging | | Volgorde opslaan (API) | route_plan → route_lokatie.nummer; frontendcall niet gevonden | | Dashboard → LogisticsDashboard | logistics_dashboard → vers_order.transporteur=user.leverancier_id |

Login forceert deliveries/stops/dashboard/driver/driver_navigation op true. route_planning komt via user.lmf_project → marktplaats.leverancier.route_planning; deze flag wordt in de actieve route_plan-autorisatie niet getest. Die controleert logistieke rol en positieve user/supplier-ID's, maar geen route-eigendom of projectscope.

Klant

| Actie → frontend | Backend → data → resultaat | |---|---| | Locaties kiezen → LocationSelector | login via klant → actieve lokatie bij klant_id; selectie lokaal in het instellingenscherm; locaties na commentaaropslaan in Redux vernieuwd | | Leveringen → CustomerDeliveries/CustomerDeliveryDetails | customer_deliveries → klant_id + location GUID + datum → levering/status/emballage/ETA | | Ontvangst bevestigen → CustomerDeliveryDetails | confirm_customer_delivery → confirm_delivery → bevestiging; packages/retour sluiten niet aan op verwerkte backendvelden | | Bijzonderheden → CustomerSettings | location_comment → lokatie.bijzonderheden op guid, commit, vernieuwde loginlocaties | | Dashboard → CustomerDashboard | customer_dashboard → eerste loginlocatie → orders/topgroepen |

De actieve customer-actions stuurt geen location_id bij customer_deliveries, hoewel de backend die vereist. location_comment begrenst zijn UPDATE niet op user.klant_id. De klantbevestiging zoekt guid zonder klant-eigendomsfilter. Dit zijn codebevindingen, geen uitgevoerde exploit- of productieproef.

Scope van dash_*

POST-only; rejects expliciete tenant/supplier/customer/hub/projectparameters. HUB, leverancier en logistiek krijgen marktplaatsen via leverancier_marktplaats; klant via klant.marktplaats. Queries eisen klant.marktplaats in scope én vers_order.marktplaats null of gelijk aan klant.marktplaats. Deze scope is marktplaatsbreed; niet hetzelfde als eigen orders of lmf_user_project. Zie LMF:411–513 en 867–1170.

Perspectiefdiagram.

Legenda · bewijs en verbindingen

Bewijsstatus

CONFIRMED Aangetroffen in bron of catalogus; niet automatisch foutloos livegedrag.

LIKELY Gevolgtrekking met onderbouwing.

UNCLEAR Onvoldoende bewijs voor deze koppeling of werking.

NOT FOUND Niet aangetroffen binnen de onderzochte scope.

FUTURE / PROPOSED Voorstel; geen huidige functionaliteit.

Relaties

direct · Aangetroffen rechtstreekse referentie of aanroep.

derived · Afgeleid door selectie, groepering of berekening.

conditional · Alleen bij de genoemde voorwaarden of aanwezige bronverwijzing.

not active · Code/model aanwezig, niet aangesloten op het beschreven pad.

unclear · Verbinding niet vastgesteld.