webui: Fix broken webui because of plugins redirection

This commit is contained in:
Chaitanya Bankanhal 2020-08-29 23:45:09 +05:30 committed by Nick Craig-Wood
parent 068cfdaa00
commit 6231beefc5
2 changed files with 13 additions and 12 deletions

View File

@ -389,7 +389,7 @@ func (s *Server) handleGet(w http.ResponseWriter, r *http.Request, path string)
case s.files != nil: case s.files != nil:
pluginsMatchResult := webgui.PluginsMatch.FindStringSubmatch(path) pluginsMatchResult := webgui.PluginsMatch.FindStringSubmatch(path)
if s.opt.WebUI && pluginsMatchResult != nil { if s.opt.WebUI && pluginsMatchResult != nil && len(pluginsMatchResult) > 2 {
ok := webgui.ServePluginOK(w, r, pluginsMatchResult) ok := webgui.ServePluginOK(w, r, pluginsMatchResult)
if !ok { if !ok {
r.URL.Path = fmt.Sprintf("/%s/%s/app/build/%s", pluginsMatchResult[1], pluginsMatchResult[2], pluginsMatchResult[3]) r.URL.Path = fmt.Sprintf("/%s/%s/app/build/%s", pluginsMatchResult[1], pluginsMatchResult[2], pluginsMatchResult[3])

View File

@ -293,19 +293,20 @@ func ServePluginWithReferrerOK(w http.ResponseWriter, r *http.Request, path stri
referrer := r.Referer() referrer := r.Referer()
referrerPathMatch := referrerPathReg.FindStringSubmatch(referrer) referrerPathMatch := referrerPathReg.FindStringSubmatch(referrer)
if referrerPathMatch != nil { if referrerPathMatch != nil && len(referrerPathMatch) > 3 {
referrerPluginMatch := PluginsMatch.FindStringSubmatch(referrerPathMatch[4]) referrerPluginMatch := PluginsMatch.FindStringSubmatch(referrerPathMatch[4])
pluginKey := fmt.Sprintf("%s/%s", referrerPluginMatch[1], referrerPluginMatch[2]) if referrerPluginMatch != nil && len(referrerPluginMatch) > 2 {
currentPlugin, err := loadedPlugins.GetPluginByName(pluginKey) pluginKey := fmt.Sprintf("%s/%s", referrerPluginMatch[1], referrerPluginMatch[2])
if err != nil { currentPlugin, err := loadedPlugins.GetPluginByName(pluginKey)
return false if err != nil {
} return false
if referrerPluginMatch != nil && currentPlugin.Rclone.RedirectReferrer { }
path = fmt.Sprintf("/plugins/%s/%s/%s", referrerPluginMatch[1], referrerPluginMatch[2], path) if currentPlugin.Rclone.RedirectReferrer {
path = fmt.Sprintf("/plugins/%s/%s/%s", referrerPluginMatch[1], referrerPluginMatch[2], path)
http.Redirect(w, r, path, http.StatusMovedPermanently) http.Redirect(w, r, path, http.StatusMovedPermanently)
//s.pluginsHandler.ServeHTTP(w, r) return true
return true }
} }
} }
return false return false