Skip to content

Commit

Permalink
implement url translation for legacy urls
Browse files Browse the repository at this point in the history
  • Loading branch information
David Christofas committed Sep 27, 2021
1 parent 969ac3c commit c8f87a2
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 2 deletions.
18 changes: 16 additions & 2 deletions internal/http/services/owncloud/ocdav/ocdav.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ func (s *svc) Close() error {
}

func (s *svc) Unprotected() []string {
return []string{"/status.php", "/remote.php/dav/public-files/"}
return []string{"/status.php", "/remote.php/dav/public-files/", "/apps/files/", "/index.php/f/", "/index.php/s/"}
}

func (s *svc) Handler() http.Handler {
Expand Down Expand Up @@ -187,7 +187,21 @@ func (s *svc) Handler() http.Handler {

// yet, add it to baseURI
base = path.Join(base, "remote.php")

case "apps":
head, r.URL.Path = router.ShiftPath(r.URL.Path)
switch head {
case "files":
s.handleLegacyPath(w, r)
return
}
case "index.php":
head, r.URL.Path = router.ShiftPath(r.URL.Path)
if head == "s" {
token := r.URL.Path
url := s.c.PublicURL + path.Join("#", head, token)
http.Redirect(w, r, url, http.StatusMovedPermanently)
return
}
}
switch head {
// the old `/webdav` endpoint uses remote.php/webdav/$path
Expand Down
14 changes: 14 additions & 0 deletions internal/http/services/owncloud/ocdav/redirect.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package ocdav

import (
"net/http"
"net/url"
"path"
)

func (s *svc) handleLegacyPath(w http.ResponseWriter, r *http.Request) {
query := r.URL.Query()
dir := query.Get("dir")
url := s.c.PublicURL + path.Join("#", "/files/list/all", url.PathEscape(dir))
http.Redirect(w, r, url, http.StatusMovedPermanently)
}

0 comments on commit c8f87a2

Please sign in to comment.