Feat: WebDAV account management

This commit is contained in:
HFO4
2020-02-18 12:10:28 +08:00
parent 663b827a1d
commit 86889e2fac
6 changed files with 148 additions and 21 deletions

View File

@@ -5,6 +5,7 @@ import (
"github.com/HFO4/cloudreve/pkg/filesystem"
"github.com/HFO4/cloudreve/pkg/util"
"github.com/HFO4/cloudreve/pkg/webdav"
"github.com/HFO4/cloudreve/service/setting"
"github.com/gin-gonic/gin"
)
@@ -40,3 +41,36 @@ func ServeWebDAV(c *gin.Context) {
handler.ServeHTTP(c.Writer, c.Request, fs)
}
// GetWebDAVAccounts 获取webdav账号列表
func GetWebDAVAccounts(c *gin.Context) {
var service setting.WebDAVListService
if err := c.ShouldBindUri(&service); err == nil {
res := service.Accounts(c, CurrentUser(c))
c.JSON(200, res)
} else {
c.JSON(200, ErrorResponse(err))
}
}
// DeleteWebDAVAccounts 删除WebDAV账户
func DeleteWebDAVAccounts(c *gin.Context) {
var service setting.WebDAVAccountService
if err := c.ShouldBindUri(&service); err == nil {
res := service.Delete(c, CurrentUser(c))
c.JSON(200, res)
} else {
c.JSON(200, ErrorResponse(err))
}
}
// CreateWebDAVAccounts 创建WebDAV账户
func CreateWebDAVAccounts(c *gin.Context) {
var service setting.WebDAVAccountCreateService
if err := c.ShouldBindJSON(&service); err == nil {
res := service.Create(c, CurrentUser(c))
c.JSON(200, res)
} else {
c.JSON(200, ErrorResponse(err))
}
}

View File

@@ -381,6 +381,17 @@ func InitMasterRouter() *gin.Engine {
vas.POST("redeem/:code", controllers.DoRedeem)
}
// WebDAV管理相关
webdav := auth.Group("webdav")
{
// 获取账号信息
webdav.GET("accounts", controllers.GetWebDAVAccounts)
// 新建账号
webdav.POST("accounts", controllers.CreateWebDAVAccounts)
// 删除账号
webdav.DELETE("accounts/:id", controllers.DeleteWebDAVAccounts)
}
}
}