Add createJWTMiddleware helper that sets database.Users object in context, matching the original main.go JWT middleware behavior. This fixes 'authentication context error' panics in handlers that call MustGetAuthenticatedUser. Changes: - Add createJWTMiddleware() in router.go - Update all route files to use the helper - Set user claims AND database.Users object in context
26 lines
917 B
Go
26 lines
917 B
Go
package router
|
|
|
|
func registerDeviceRoutes(cfg *Config) {
|
|
e := cfg.Echo
|
|
|
|
// JWT middleware
|
|
jwtMiddleware := createJWTMiddleware(cfg)
|
|
|
|
// Protected routes
|
|
protected := e.Group("/api", jwtMiddleware)
|
|
|
|
// Public device registration routes (no auth required)
|
|
e.POST("/api/devices/register", cfg.DeviceHandler.InitiateRegistration)
|
|
e.POST("/api/devices/register/status", cfg.DeviceHandler.CheckRegistrationStatus)
|
|
e.GET("/api/devices/approve/:token", cfg.DeviceHandler.ApproveDevice)
|
|
e.POST("/api/devices/reject/:token", cfg.DeviceHandler.RejectDevice)
|
|
|
|
// Device management routes (protected)
|
|
devices := protected.Group("/devices")
|
|
devices.GET("", cfg.DeviceHandler.ListDevices)
|
|
devices.GET("/:id", cfg.DeviceHandler.GetDevice)
|
|
devices.PUT("/:id", cfg.DeviceHandler.UpdateDevice)
|
|
devices.DELETE("/:id", cfg.DeviceHandler.DeleteDevice)
|
|
devices.GET("/pending", cfg.DeviceHandler.ListPendingRegistrations)
|
|
}
|