Fix path loading error
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
@@ -18,6 +18,7 @@ package server
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/getprobo/probo/pkg/agents"
|
"github.com/getprobo/probo/pkg/agents"
|
||||||
"github.com/getprobo/probo/pkg/connector"
|
"github.com/getprobo/probo/pkg/connector"
|
||||||
@@ -119,6 +120,7 @@ func (s *Server) setupRoutes() {
|
|||||||
// Trust center routes by slug
|
// Trust center routes by slug
|
||||||
s.router.Route("/trust/{slug}", func(r chi.Router) {
|
s.router.Route("/trust/{slug}", func(r chi.Router) {
|
||||||
r.Use(s.loadTrustCenterBySlug)
|
r.Use(s.loadTrustCenterBySlug)
|
||||||
|
r.Use(s.stripTrustSlugPrefix)
|
||||||
r.Mount("/", s.trustCenterRouter())
|
r.Mount("/", s.trustCenterRouter())
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -215,6 +217,28 @@ func (s *Server) addTrustCenterToContext(ctx context.Context, tenantID, organiza
|
|||||||
return ctx
|
return ctx
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// stripTrustSlugPrefix middleware strips /trust/{slug} from the path
|
||||||
|
func (s *Server) stripTrustSlugPrefix(next http.Handler) http.Handler {
|
||||||
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
slug := chi.URLParam(r, "slug")
|
||||||
|
prefix := "/trust/" + slug
|
||||||
|
|
||||||
|
// Strip the prefix from the path
|
||||||
|
if r.URL.Path == prefix {
|
||||||
|
// Redirect to trailing slash for proper asset resolution
|
||||||
|
http.Redirect(w, r, prefix+"/", http.StatusMovedPermanently)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
r.URL.Path = strings.TrimPrefix(r.URL.Path, prefix)
|
||||||
|
if r.URL.Path == "" {
|
||||||
|
r.URL.Path = "/"
|
||||||
|
}
|
||||||
|
|
||||||
|
next.ServeHTTP(w, r)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// trustCenterRouter returns a router for trust center content (API + frontend)
|
// trustCenterRouter returns a router for trust center content (API + frontend)
|
||||||
func (s *Server) trustCenterRouter() chi.Router {
|
func (s *Server) trustCenterRouter() chi.Router {
|
||||||
r := chi.NewRouter()
|
r := chi.NewRouter()
|
||||||
|
|||||||
Reference in New Issue
Block a user