Fix link issue with forum redirects
This commit is contained in:
parent
c6387e2885
commit
4d3a4c20ca
|
@ -292,7 +292,7 @@ func BuildProjectNew() string {
|
|||
return Url("/projects/new", nil)
|
||||
}
|
||||
|
||||
var RegexPersonalProject = regexp.MustCompile("^/p/(?P<projectid>[0-9]+)(/(?P<slug>[a-zA-Z0-9-]+))?")
|
||||
var RegexPersonalProject = regexp.MustCompile("^/p/(?P<projectid>[0-9]+)(/(?P<projectslug>[a-zA-Z0-9-]+))?")
|
||||
|
||||
func BuildPersonalProject(id int, slug string) string {
|
||||
defer CatchPanic()
|
||||
|
@ -452,7 +452,7 @@ func (c *UrlContext) BuildForumThreadWithPostHash(subforums []string, threadId i
|
|||
defer CatchPanic()
|
||||
builder := buildForumThreadPath(subforums, threadId, title, page)
|
||||
|
||||
return UrlWithFragment(builder.String(), nil, strconv.Itoa(postId))
|
||||
return c.UrlWithFragment(builder.String(), nil, strconv.Itoa(postId))
|
||||
}
|
||||
|
||||
var RegexForumPost = regexp.MustCompile(`^/forums(/(?P<subforums>[^\d/]+(/[^\d]+)*))?/t/(?P<threadid>\d+)/p/(?P<postid>\d+)$`)
|
||||
|
|
|
@ -34,6 +34,14 @@ type Route struct {
|
|||
Handler Handler
|
||||
}
|
||||
|
||||
func (r *Route) String() string {
|
||||
var routeStrings []string
|
||||
for _, regex := range r.Regexes {
|
||||
routeStrings = append(routeStrings, regex.String())
|
||||
}
|
||||
return fmt.Sprintf("%s %v", r.Method, routeStrings)
|
||||
}
|
||||
|
||||
type RouteBuilder struct {
|
||||
Router *Router
|
||||
Prefixes []*regexp.Regexp
|
||||
|
@ -107,6 +115,12 @@ nextroute:
|
|||
if paramName == "" {
|
||||
continue
|
||||
}
|
||||
if _, alreadyExists := params[paramName]; alreadyExists {
|
||||
logging.Warn().
|
||||
Str("route", route.String()).
|
||||
Str("paramName", paramName).
|
||||
Msg("duplicate names for path parameters; last one wins")
|
||||
}
|
||||
params[paramName] = paramValue
|
||||
}
|
||||
|
||||
|
@ -118,13 +132,8 @@ nextroute:
|
|||
}
|
||||
}
|
||||
|
||||
var routeStrings []string
|
||||
for _, regex := range route.Regexes {
|
||||
routeStrings = append(routeStrings, regex.String())
|
||||
}
|
||||
|
||||
c := &RequestContext{
|
||||
Route: fmt.Sprintf("%v", routeStrings),
|
||||
Route: route.String(),
|
||||
Logger: logging.GlobalLogger(),
|
||||
Req: req,
|
||||
Res: rw,
|
||||
|
|
|
@ -307,7 +307,7 @@ func NewWebsiteRoutes(longRequestContext context.Context, conn *pgxpool.Pool, pe
|
|||
return c.Redirect(c.UrlContext.RewriteProjectUrl(c.URL()), http.StatusSeeOther)
|
||||
}
|
||||
|
||||
if c.PathParams["slug"] != models.GeneratePersonalProjectSlug(p.Project.Name) {
|
||||
if c.PathParams["projectslug"] != models.GeneratePersonalProjectSlug(p.Project.Name) {
|
||||
return c.Redirect(c.UrlContext.RewriteProjectUrl(c.URL()), http.StatusSeeOther)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue