You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
600 lines
16 KiB
600 lines
16 KiB
package controllers
|
|
|
|
import (
|
|
"github.com/cloudreve/Cloudreve/v4/pkg/serializer"
|
|
"github.com/cloudreve/Cloudreve/v4/service/admin"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// AdminSummary 获取管理站点概况
|
|
func AdminSummary(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SummaryService](c, admin.SummaryParamCtx{})
|
|
res, err := service.Summary(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
// AdminGetSettings 获取站点设定项
|
|
func AdminGetSettings(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.GetSettingService](c, admin.GetSettingParamCtx{})
|
|
res, err := service.GetSetting(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminSetSettings(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SetSettingService](c, admin.SetSettingParamCtx{})
|
|
res, err := service.SetSetting(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
// AdminListGroups 获取用户组列表
|
|
func AdminListGroups(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.List(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminFetchWopi(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.FetchWOPIDiscoveryService](c, admin.FetchWOPIDiscoveryParamCtx{})
|
|
res, err := service.Fetch(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
// AdminTestThumbGenerator Tests thumb generator
|
|
func AdminTestThumbGenerator(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.ThumbGeneratorTestService](c, admin.ThumbGeneratorTestParamCtx{})
|
|
res, err := service.Test(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetQueueMetrics(c *gin.Context) {
|
|
res, err := admin.GetQueueMetrics(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminListPolicies(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.Policies(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetPolicy(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
// AdminSendTestMail 发送测试邮件
|
|
func AdminSendTestMail(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.TestSMTPService](c, admin.TestSMTPParamCtx{})
|
|
err := service.Test(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminCreatePolicy(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.CreateStoragePolicyService](c, admin.CreateStoragePolicyParamCtx{})
|
|
res, err := service.Create(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminUpdatePolicy(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpdateStoragePolicyService](c, admin.UpdateStoragePolicyParamCtx{})
|
|
res, err := service.Update(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminListNodes(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.Nodes(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetNode(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleNodeService](c, admin.SingleNodeParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminClearEntityUrlCache(c *gin.Context) {
|
|
admin.ClearEntityUrlCache(c)
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminCreateStoragePolicyCors(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.CreateStoragePolicyCorsService](c, admin.CreateStoragePolicyCorsParamCtx{})
|
|
err := service.Create(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminOdOAuthURL(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.GetOauthRedirectService](c, admin.GetOauthRedirectParamCtx{})
|
|
res, err := service.GetOAuth(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetPolicyOAuthCallbackURL(c *gin.Context) {
|
|
res := admin.GetPolicyOAuthURL(c)
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetPolicyOAuthStatus(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
|
|
res, err := service.GetOauthCredentialStatus(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminFinishOauthCallback(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.FinishOauthCallbackService](c, admin.FinishOauthCallbackParamCtx{})
|
|
err := service.Finish(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminGetSharePointDriverRoot(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
|
|
res, err := service.GetSharePointDriverRoot(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminDeletePolicy(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminGetGroup(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleGroupService](c, admin.SingleGroupParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminCreateGroup(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpsertGroupService](c, admin.UpsertGroupParamCtx{})
|
|
res, err := service.Create(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminUpdateGroup(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpsertGroupService](c, admin.UpsertGroupParamCtx{})
|
|
res, err := service.Update(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminListUsers(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.Users(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetUser(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleUserService](c, admin.SingleUserParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminUpdateUser(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpsertUserService](c, admin.UpsertUserParamCtx{})
|
|
res, err := service.Update(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminCreateUser(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpsertUserService](c, admin.UpsertUserParamCtx{})
|
|
res, err := service.Create(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
// func AdminHashIDEncode(c *gin.Context) {
|
|
// service := ParametersFromContext[*admin.HashIDService](c, admin.HashIDParamCtx{})
|
|
// resp, err := service.Encode(c)
|
|
// if err != nil {
|
|
// c.JSON(200, serializer.Err(c, err))
|
|
// c.Abort()
|
|
// return
|
|
// }
|
|
//
|
|
// c.JSON(200, serializer.Response{
|
|
// Data: resp,
|
|
// })
|
|
// }
|
|
//
|
|
// func AdminHashIDDecode(c *gin.Context) {
|
|
// service := ParametersFromContext[*admin.HashIDService](c, admin.HashIDParamCtx{})
|
|
// resp, err := service.Decode(c)
|
|
// if err != nil {
|
|
// c.JSON(200, serializer.Err(c, err))
|
|
// c.Abort()
|
|
// return
|
|
// }
|
|
//
|
|
// c.JSON(200, serializer.Response{
|
|
// Data: resp,
|
|
// })
|
|
// }
|
|
//
|
|
// func AdminBsEncode(c *gin.Context) {
|
|
// service := ParametersFromContext[*admin.BsEncodeService](c, admin.BsEncodeParamCtx{})
|
|
// resp, err := service.Encode(c)
|
|
// if err != nil {
|
|
// c.JSON(200, serializer.Err(c, err))
|
|
// c.Abort()
|
|
// return
|
|
// }
|
|
//
|
|
// c.JSON(200, serializer.Response{
|
|
// Data: resp,
|
|
// })
|
|
// }
|
|
//
|
|
// func AdminBsDecode(c *gin.Context) {
|
|
// service := ParametersFromContext[*admin.BsDecodeService](c, admin.BsDecodeParamCtx{})
|
|
// resp, err := service.Decode(c)
|
|
// if err != nil {
|
|
// c.JSON(200, serializer.Err(c, err))
|
|
// c.Abort()
|
|
// return
|
|
// }
|
|
//
|
|
// c.JSON(200, serializer.Response{
|
|
// Data: resp,
|
|
// })
|
|
// }
|
|
//
|
|
|
|
func AdminDeleteGroup(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleGroupService](c, admin.SingleGroupParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
// AdminTestSlave 测试从机可用性
|
|
func AdminTestSlave(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.TestNodeService](c, admin.TestNodeParamCtx{})
|
|
err := service.Test(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
// AdminTestDownloader 测试下载器连接
|
|
func AdminTestDownloader(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.TestNodeDownloaderService](c, admin.TestNodeDownloaderParamCtx{})
|
|
res, err := service.Test(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminCreateNode(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpsertNodeService](c, admin.UpsertNodeParamCtx{})
|
|
res, err := service.Create(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminUpdateNode(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpsertNodeService](c, admin.UpsertNodeParamCtx{})
|
|
res, err := service.Update(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminDeleteNode(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleNodeService](c, admin.SingleNodeParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
// AdminDeleteUser 批量删除用户
|
|
func AdminDeleteUser(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.BatchUserService](c, admin.BatchUserParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminListFiles(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.Files(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetFile(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleFileService](c, admin.SingleFileParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminUpdateFile(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.UpsertFileService](c, admin.UpsertFileParamCtx{})
|
|
res, err := service.Update(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetFileUrl(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleFileService](c, admin.SingleFileParamCtx{})
|
|
res, err := service.Url(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminBatchDeleteFile(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.BatchFileService](c, admin.BatchFileParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminListEntities(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.Entities(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetEntity(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleEntityService](c, admin.SingleEntityParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetEntityUrl(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleEntityService](c, admin.SingleEntityParamCtx{})
|
|
res, err := service.Url(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminBatchDeleteEntity(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.BatchEntityService](c, admin.BatchEntityParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
}
|
|
|
|
func AdminCleanupTask(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.CleanupTaskService](c, admin.CleanupTaskParameterCtx{})
|
|
err := service.CleanupTask(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminListTasks(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.Tasks(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetTask(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleTaskService](c, admin.SingleTaskParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminBatchDeleteTask(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.BatchTaskService](c, admin.BatchTaskParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{})
|
|
}
|
|
|
|
func AdminListShares(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
|
|
res, err := service.Shares(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminGetShare(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleShareService](c, admin.SingleShareParamCtx{})
|
|
res, err := service.Get(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|
|
|
|
func AdminBatchDeleteShare(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.BatchShareService](c, admin.BatchShareParamCtx{})
|
|
err := service.Delete(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
}
|
|
|
|
func AdminCalibrateStorage(c *gin.Context) {
|
|
service := ParametersFromContext[*admin.SingleUserService](c, admin.SingleUserParamCtx{})
|
|
res, err := service.CalibrateStorage(c)
|
|
if err != nil {
|
|
c.JSON(200, serializer.Err(c, err))
|
|
return
|
|
}
|
|
c.JSON(200, serializer.Response{Data: res})
|
|
}
|