From 00e47934c7cdfcdcf92fca5b7d3f16ef4a6f2c7f Mon Sep 17 00:00:00 2001 From: Abhishek Shroff Date: Tue, 6 Aug 2024 23:31:59 +0530 Subject: [PATCH] Repackage webdav files --- server/internal/api/auth/auth.go | 9 --------- server/internal/api/auth/auth_bearer.go | 1 - server/internal/command/appcmd/serve.go | 2 +- server/internal/{api/auth => webdav}/auth_basic.go | 7 ++++--- .../internal/{handler_webdav => webdav}/handler.go | 13 +++++++++---- server/internal/webdav/{ => impl}/file.go | 0 server/internal/webdav/{ => impl}/if.go | 0 server/internal/webdav/{ => impl}/if_test.go | 0 server/internal/webdav/{ => impl}/lock.go | 0 server/internal/webdav/{ => impl}/lock_test.go | 0 server/internal/webdav/{ => impl}/prop.go | 0 server/internal/webdav/{ => impl}/serve_resource.go | 0 server/internal/webdav/{ => impl}/webdav.go | 0 server/internal/webdav/{ => impl}/xml.go | 2 +- server/internal/webdav/{ => impl}/xml_test.go | 2 +- server/internal/{ => webdav}/xml/README | 0 server/internal/{ => webdav}/xml/atom_test.go | 0 server/internal/{ => webdav}/xml/example_test.go | 0 server/internal/{ => webdav}/xml/marshal.go | 0 server/internal/{ => webdav}/xml/marshal_test.go | 0 server/internal/{ => webdav}/xml/read.go | 0 server/internal/{ => webdav}/xml/read_test.go | 0 server/internal/{ => webdav}/xml/typeinfo.go | 0 server/internal/{ => webdav}/xml/xml.go | 0 server/internal/{ => webdav}/xml/xml_test.go | 0 25 files changed, 16 insertions(+), 20 deletions(-) rename server/internal/{api/auth => webdav}/auth_basic.go (85%) rename server/internal/{handler_webdav => webdav}/handler.go (93%) rename server/internal/webdav/{ => impl}/file.go (100%) rename server/internal/webdav/{ => impl}/if.go (100%) rename server/internal/webdav/{ => impl}/if_test.go (100%) rename server/internal/webdav/{ => impl}/lock.go (100%) rename server/internal/webdav/{ => impl}/lock_test.go (100%) rename server/internal/webdav/{ => impl}/prop.go (100%) rename server/internal/webdav/{ => impl}/serve_resource.go (100%) rename server/internal/webdav/{ => impl}/webdav.go (100%) rename server/internal/webdav/{ => impl}/xml.go (99%) rename server/internal/webdav/{ => impl}/xml_test.go (99%) rename server/internal/{ => webdav}/xml/README (100%) rename server/internal/{ => webdav}/xml/atom_test.go (100%) rename server/internal/{ => webdav}/xml/example_test.go (100%) rename server/internal/{ => webdav}/xml/marshal.go (100%) rename server/internal/{ => webdav}/xml/marshal_test.go (100%) rename server/internal/{ => webdav}/xml/read.go (100%) rename server/internal/{ => webdav}/xml/read_test.go (100%) rename server/internal/{ => webdav}/xml/typeinfo.go (100%) rename server/internal/{ => webdav}/xml/xml.go (100%) rename server/internal/{ => webdav}/xml/xml_test.go (100%) diff --git a/server/internal/api/auth/auth.go b/server/internal/api/auth/auth.go index 5bcfb525..9638a862 100644 --- a/server/internal/api/auth/auth.go +++ b/server/internal/api/auth/auth.go @@ -6,15 +6,6 @@ import ( ) const keyFileSystem = "filesystem" -const keyUserID = "userID" - -func GetUserID(c *gin.Context) int32 { - val, ok := c.Get(keyUserID) - if !ok { - return 0 - } - return val.(int32) -} func GetFileSystem(c *gin.Context) core.FileSystem { val, ok := c.Get(keyFileSystem) diff --git a/server/internal/api/auth/auth_bearer.go b/server/internal/api/auth/auth_bearer.go index b0410802..800ac0f1 100644 --- a/server/internal/api/auth/auth_bearer.go +++ b/server/internal/api/auth/auth_bearer.go @@ -38,7 +38,6 @@ func CreateBearerAuthHandler(a *app.App) func(c *gin.Context) { logrus.Warn(err) c.AbortWithStatus(http.StatusInternalServerError) } else { - c.Set(keyUserID, userID) c.Set(keyFileSystem, fs) } } diff --git a/server/internal/command/appcmd/serve.go b/server/internal/command/appcmd/serve.go index 6db18ca8..7fe844f3 100644 --- a/server/internal/command/appcmd/serve.go +++ b/server/internal/command/appcmd/serve.go @@ -9,7 +9,7 @@ import ( "github.com/gin-gonic/gin" "github.com/shroff/phylum/server/internal/api" "github.com/shroff/phylum/server/internal/app" - webdav "github.com/shroff/phylum/server/internal/handler_webdav" + "github.com/shroff/phylum/server/internal/webdav" "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/spf13/viper" diff --git a/server/internal/api/auth/auth_basic.go b/server/internal/webdav/auth_basic.go similarity index 85% rename from server/internal/api/auth/auth_basic.go rename to server/internal/webdav/auth_basic.go index 8faa1b20..6eadd56e 100644 --- a/server/internal/api/auth/auth_basic.go +++ b/server/internal/webdav/auth_basic.go @@ -1,4 +1,4 @@ -package auth +package webdav import ( "net/http" @@ -8,7 +8,9 @@ import ( "github.com/sirupsen/logrus" ) -func CreateBasicAuthHandler(app *app.App) func(c *gin.Context) { +const keyFileSystem = "filesystem" + +func createBasicAuthHandler(app *app.App) func(c *gin.Context) { return func(c *gin.Context) { var userID int32 if username, pass, ok := c.Request.BasicAuth(); ok { @@ -23,7 +25,6 @@ func CreateBasicAuthHandler(app *app.App) func(c *gin.Context) { logrus.Warn(err) c.AbortWithStatus(http.StatusInternalServerError) } else { - c.Set(keyUserID, userID) c.Set(keyFileSystem, fs) } } diff --git a/server/internal/handler_webdav/handler.go b/server/internal/webdav/handler.go similarity index 93% rename from server/internal/handler_webdav/handler.go rename to server/internal/webdav/handler.go index b2348122..db237322 100644 --- a/server/internal/handler_webdav/handler.go +++ b/server/internal/webdav/handler.go @@ -5,14 +5,14 @@ import ( "errors" "io" "io/fs" + "net/http" "strings" "github.com/gin-gonic/gin" "github.com/google/uuid" - "github.com/shroff/phylum/server/internal/api/auth" "github.com/shroff/phylum/server/internal/app" "github.com/shroff/phylum/server/internal/app/core" - "github.com/shroff/phylum/server/internal/webdav" + webdav "github.com/shroff/phylum/server/internal/webdav/impl" "github.com/sirupsen/logrus" ) @@ -27,7 +27,7 @@ func SetupHandler(r *gin.RouterGroup, app *app.App) { app: app, prefix: r.BasePath(), } - r.Use(auth.CreateBasicAuthHandler(app)) + r.Use(createBasicAuthHandler(app)) r.Handle("OPTIONS", "/*path", handler.HandleRequest) r.Handle("GET", "/*path", handler.HandleRequest) r.Handle("PUT", "/*path", handler.HandleRequest) @@ -42,9 +42,14 @@ func SetupHandler(r *gin.RouterGroup, app *app.App) { } func (h *handler) HandleRequest(c *gin.Context) { + fs, ok := c.Get(keyFileSystem) + if !ok { + c.AbortWithStatus(http.StatusInternalServerError) + return + } webdavHandler := webdav.Handler{ Prefix: h.prefix, - FileSystem: adapter{fs: auth.GetFileSystem(c)}, + FileSystem: adapter{fs: fs.(core.FileSystem)}, LockSystem: webdav.NewMemLS(), } webdavHandler.ServeHTTP(c.Writer, c.Request) diff --git a/server/internal/webdav/file.go b/server/internal/webdav/impl/file.go similarity index 100% rename from server/internal/webdav/file.go rename to server/internal/webdav/impl/file.go diff --git a/server/internal/webdav/if.go b/server/internal/webdav/impl/if.go similarity index 100% rename from server/internal/webdav/if.go rename to server/internal/webdav/impl/if.go diff --git a/server/internal/webdav/if_test.go b/server/internal/webdav/impl/if_test.go similarity index 100% rename from server/internal/webdav/if_test.go rename to server/internal/webdav/impl/if_test.go diff --git a/server/internal/webdav/lock.go b/server/internal/webdav/impl/lock.go similarity index 100% rename from server/internal/webdav/lock.go rename to server/internal/webdav/impl/lock.go diff --git a/server/internal/webdav/lock_test.go b/server/internal/webdav/impl/lock_test.go similarity index 100% rename from server/internal/webdav/lock_test.go rename to server/internal/webdav/impl/lock_test.go diff --git a/server/internal/webdav/prop.go b/server/internal/webdav/impl/prop.go similarity index 100% rename from server/internal/webdav/prop.go rename to server/internal/webdav/impl/prop.go diff --git a/server/internal/webdav/serve_resource.go b/server/internal/webdav/impl/serve_resource.go similarity index 100% rename from server/internal/webdav/serve_resource.go rename to server/internal/webdav/impl/serve_resource.go diff --git a/server/internal/webdav/webdav.go b/server/internal/webdav/impl/webdav.go similarity index 100% rename from server/internal/webdav/webdav.go rename to server/internal/webdav/impl/webdav.go diff --git a/server/internal/webdav/xml.go b/server/internal/webdav/impl/xml.go similarity index 99% rename from server/internal/webdav/xml.go rename to server/internal/webdav/impl/xml.go index 0cc1c8e6..282fd9ef 100644 --- a/server/internal/webdav/xml.go +++ b/server/internal/webdav/impl/xml.go @@ -32,7 +32,7 @@ import ( // In the long term, this package should use the standard library's version // only, and the internal fork deleted, once // https://github.com/golang/go/issues/13400 is resolved. - ixml "github.com/shroff/phylum/server/internal/xml" + ixml "github.com/shroff/phylum/server/internal/webdav/xml" ) // http://www.webdav.org/specs/rfc4918.html#ELEMENT_lockinfo diff --git a/server/internal/webdav/xml_test.go b/server/internal/webdav/impl/xml_test.go similarity index 99% rename from server/internal/webdav/xml_test.go rename to server/internal/webdav/impl/xml_test.go index 33e61bdc..a6e0cb19 100644 --- a/server/internal/webdav/xml_test.go +++ b/server/internal/webdav/impl/xml_test.go @@ -16,7 +16,7 @@ import ( "strings" "testing" - ixml "github.com/shroff/phylum/server/internal/xml" + ixml "github.com/shroff/phylum/server/internal/webdav/xml" ) func TestReadLockInfo(t *testing.T) { diff --git a/server/internal/xml/README b/server/internal/webdav/xml/README similarity index 100% rename from server/internal/xml/README rename to server/internal/webdav/xml/README diff --git a/server/internal/xml/atom_test.go b/server/internal/webdav/xml/atom_test.go similarity index 100% rename from server/internal/xml/atom_test.go rename to server/internal/webdav/xml/atom_test.go diff --git a/server/internal/xml/example_test.go b/server/internal/webdav/xml/example_test.go similarity index 100% rename from server/internal/xml/example_test.go rename to server/internal/webdav/xml/example_test.go diff --git a/server/internal/xml/marshal.go b/server/internal/webdav/xml/marshal.go similarity index 100% rename from server/internal/xml/marshal.go rename to server/internal/webdav/xml/marshal.go diff --git a/server/internal/xml/marshal_test.go b/server/internal/webdav/xml/marshal_test.go similarity index 100% rename from server/internal/xml/marshal_test.go rename to server/internal/webdav/xml/marshal_test.go diff --git a/server/internal/xml/read.go b/server/internal/webdav/xml/read.go similarity index 100% rename from server/internal/xml/read.go rename to server/internal/webdav/xml/read.go diff --git a/server/internal/xml/read_test.go b/server/internal/webdav/xml/read_test.go similarity index 100% rename from server/internal/xml/read_test.go rename to server/internal/webdav/xml/read_test.go diff --git a/server/internal/xml/typeinfo.go b/server/internal/webdav/xml/typeinfo.go similarity index 100% rename from server/internal/xml/typeinfo.go rename to server/internal/webdav/xml/typeinfo.go diff --git a/server/internal/xml/xml.go b/server/internal/webdav/xml/xml.go similarity index 100% rename from server/internal/xml/xml.go rename to server/internal/webdav/xml/xml.go diff --git a/server/internal/xml/xml_test.go b/server/internal/webdav/xml/xml_test.go similarity index 100% rename from server/internal/xml/xml_test.go rename to server/internal/webdav/xml/xml_test.go