diff --git a/cmd/alist.go b/cmd/alist.go index f7f6cc53..aa464084 100644 --- a/cmd/alist.go +++ b/cmd/alist.go @@ -4,7 +4,7 @@ import ( "flag" "fmt" "github.com/alist-org/alist/v3/internal/conf" - "github.com/alist-org/alist/v3/internal/server" + "github.com/alist-org/alist/v3/server" "os" "github.com/alist-org/alist/v3/bootstrap" diff --git a/internal/server/common/auth.go b/server/common/auth.go similarity index 100% rename from internal/server/common/auth.go rename to server/common/auth.go diff --git a/internal/server/common/common.go b/server/common/common.go similarity index 100% rename from internal/server/common/common.go rename to server/common/common.go diff --git a/internal/server/common/req.go b/server/common/req.go similarity index 100% rename from internal/server/common/req.go rename to server/common/req.go diff --git a/internal/server/common/resp.go b/server/common/resp.go similarity index 100% rename from internal/server/common/resp.go rename to server/common/resp.go diff --git a/internal/server/controllers/login.go b/server/controllers/login.go similarity index 70% rename from internal/server/controllers/login.go rename to server/controllers/login.go index f59303a6..adc1c3d9 100644 --- a/internal/server/controllers/login.go +++ b/server/controllers/login.go @@ -4,7 +4,7 @@ import ( "github.com/Xhofe/go-cache" "github.com/alist-org/alist/v3/internal/db" "github.com/alist-org/alist/v3/internal/model" - "github.com/alist-org/alist/v3/internal/server/common" + common2 "github.com/alist-org/alist/v3/server/common" "github.com/gin-gonic/gin" "time" ) @@ -25,34 +25,34 @@ func Login(c *gin.Context) { ip := c.ClientIP() count, ok := loginCache.Get(ip) if ok && count >= defaultTimes { - common.ErrorStrResp(c, "Too many unsuccessful sign-in attempts have been made using an incorrect password. Try again later.", 403) + common2.ErrorStrResp(c, "Too many unsuccessful sign-in attempts have been made using an incorrect password. Try again later.", 403) loginCache.Expire(ip, defaultDuration) return } // check username var req LoginReq if err := c.ShouldBind(&req); err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) return } user, err := db.GetUserByName(req.Username) if err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) return } // validate password if err := user.ValidatePassword(req.Password); err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) loginCache.Set(ip, count+1) return } // generate token - token, err := common.GenerateToken(user.Username) + token, err := common2.GenerateToken(user.Username) if err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) return } - common.SuccessResp(c, gin.H{"token": token}) + common2.SuccessResp(c, gin.H{"token": token}) loginCache.Del(ip) } @@ -61,5 +61,5 @@ func Login(c *gin.Context) { func CurrentUser(c *gin.Context) { user := c.MustGet("user").(*model.User) user.Password = "" - common.SuccessResp(c, gin.H{"user": user}) + common2.SuccessResp(c, gin.H{"user": user}) } diff --git a/internal/server/controllers/meta.go b/server/controllers/meta.go similarity index 70% rename from internal/server/controllers/meta.go rename to server/controllers/meta.go index 09e4fc45..b8a4c5b4 100644 --- a/internal/server/controllers/meta.go +++ b/server/controllers/meta.go @@ -3,26 +3,26 @@ package controllers import ( "github.com/alist-org/alist/v3/internal/db" "github.com/alist-org/alist/v3/internal/model" - "github.com/alist-org/alist/v3/internal/server/common" "github.com/alist-org/alist/v3/pkg/utils" + common2 "github.com/alist-org/alist/v3/server/common" "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" "strconv" ) func ListMetas(c *gin.Context) { - var req common.PageReq + var req common2.PageReq if err := c.ShouldBind(&req); err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) return } log.Debugf("%+v", req) metas, total, err := db.GetMetas(req.PageIndex, req.PageSize) if err != nil { - common.ErrorResp(c, err, 500, true) + common2.ErrorResp(c, err, 500, true) return } - common.SuccessResp(c, common.PageResp{ + common2.SuccessResp(c, common2.PageResp{ Content: metas, Total: total, }) @@ -31,28 +31,28 @@ func ListMetas(c *gin.Context) { func CreateMeta(c *gin.Context) { var req model.Meta if err := c.ShouldBind(&req); err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) return } req.Path = utils.StandardizePath(req.Path) if err := db.CreateMeta(&req); err != nil { - common.ErrorResp(c, err, 500) + common2.ErrorResp(c, err, 500) } else { - common.SuccessResp(c) + common2.SuccessResp(c) } } func UpdateMeta(c *gin.Context) { var req model.Meta if err := c.ShouldBind(&req); err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) return } req.Path = utils.StandardizePath(req.Path) if err := db.UpdateMeta(&req); err != nil { - common.ErrorResp(c, err, 500) + common2.ErrorResp(c, err, 500) } else { - common.SuccessResp(c) + common2.SuccessResp(c) } } @@ -60,12 +60,12 @@ func DeleteMeta(c *gin.Context) { idStr := c.Query("id") id, err := strconv.Atoi(idStr) if err != nil { - common.ErrorResp(c, err, 400) + common2.ErrorResp(c, err, 400) return } if err := db.DeleteMetaById(uint(id)); err != nil { - common.ErrorResp(c, err, 500) + common2.ErrorResp(c, err, 500) return } - common.SuccessResp(c) + common2.SuccessResp(c) } diff --git a/internal/server/middlewares/auth.go b/server/middlewares/auth.go similarity index 74% rename from internal/server/middlewares/auth.go rename to server/middlewares/auth.go index 2f6cca29..a2ea8da3 100644 --- a/internal/server/middlewares/auth.go +++ b/server/middlewares/auth.go @@ -3,7 +3,7 @@ package middlewares import ( "github.com/alist-org/alist/v3/internal/db" "github.com/alist-org/alist/v3/internal/model" - "github.com/alist-org/alist/v3/internal/server/common" + common2 "github.com/alist-org/alist/v3/server/common" "github.com/gin-gonic/gin" ) @@ -14,7 +14,7 @@ func Auth(c *gin.Context) { if token == "" { guest, err := db.GetGuest() if err != nil { - common.ErrorResp(c, err, 500, true) + common2.ErrorResp(c, err, 500, true) c.Abort() return } @@ -22,15 +22,15 @@ func Auth(c *gin.Context) { c.Next() return } - userClaims, err := common.ParseToken(token) + userClaims, err := common2.ParseToken(token) if err != nil { - common.ErrorResp(c, err, 401) + common2.ErrorResp(c, err, 401) c.Abort() return } user, err := db.GetUserByName(userClaims.Username) if err != nil { - common.ErrorResp(c, err, 401) + common2.ErrorResp(c, err, 401) c.Abort() return } @@ -41,7 +41,7 @@ func Auth(c *gin.Context) { func AuthAdmin(c *gin.Context) { user := c.MustGet("user").(*model.User) if !user.IsAdmin() { - common.ErrorStrResp(c, "You are not an admin", 403) + common2.ErrorStrResp(c, "You are not an admin", 403) c.Abort() } else { c.Next() diff --git a/internal/server/router.go b/server/router.go similarity index 54% rename from internal/server/router.go rename to server/router.go index 4af2779a..52c12749 100644 --- a/internal/server/router.go +++ b/server/router.go @@ -2,9 +2,9 @@ package server import ( "github.com/alist-org/alist/v3/internal/conf" - "github.com/alist-org/alist/v3/internal/server/common" - "github.com/alist-org/alist/v3/internal/server/controllers" - "github.com/alist-org/alist/v3/internal/server/middlewares" + "github.com/alist-org/alist/v3/server/common" + controllers2 "github.com/alist-org/alist/v3/server/controllers" + "github.com/alist-org/alist/v3/server/middlewares" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" ) @@ -14,16 +14,16 @@ func Init(r *gin.Engine) { Cors(r) api := r.Group("/api", middlewares.Auth) - api.POST("/auth/login", controllers.Login) - api.GET("/auth/current", controllers.CurrentUser) + api.POST("/auth/login", controllers2.Login) + api.GET("/auth/current", controllers2.CurrentUser) admin := api.Group("/admin", middlewares.AuthAdmin) meta := admin.Group("/meta") - meta.GET("/list", controllers.ListMetas) - meta.POST("/create", controllers.CreateMeta) - meta.POST("/update", controllers.UpdateMeta) - meta.POST("/delete", controllers.DeleteMeta) + meta.GET("/list", controllers2.ListMetas) + meta.POST("/create", controllers2.CreateMeta) + meta.POST("/update", controllers2.UpdateMeta) + meta.POST("/delete", controllers2.DeleteMeta) } func Cors(r *gin.Engine) {