Fix: delete node in admin panel
This commit is contained in:
parent
9d436e0504
commit
0d9aeb1d98
4 changed files with 42 additions and 1 deletions
|
@ -10,6 +10,7 @@ import (
|
|||
"github.com/cloudreve/Cloudreve/v3/pkg/mq"
|
||||
"github.com/cloudreve/Cloudreve/v3/pkg/serializer"
|
||||
"github.com/cloudreve/Cloudreve/v3/pkg/util"
|
||||
"github.com/gofrs/uuid"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
@ -182,10 +183,11 @@ func (r *rpcService) Init() error {
|
|||
func (r *rpcService) CreateTask(task *model.Download, groupOptions map[string]interface{}) (string, error) {
|
||||
r.parent.lock.RLock()
|
||||
// 生成存储路径
|
||||
guid, _ := uuid.NewV4()
|
||||
path := filepath.Join(
|
||||
r.parent.Model.Aria2OptionsSerialized.TempPath,
|
||||
"aria2",
|
||||
strconv.FormatInt(time.Now().UnixNano(), 10),
|
||||
guid.String(),
|
||||
)
|
||||
r.parent.lock.RUnlock()
|
||||
|
||||
|
|
|
@ -465,3 +465,14 @@ func AdminToggleNode(c *gin.Context) {
|
|||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
||||
|
||||
// AdminDeleteGroup 删除用户组
|
||||
func AdminDeleteNode(c *gin.Context) {
|
||||
var service admin.NodeService
|
||||
if err := c.ShouldBindUri(&service); err == nil {
|
||||
res := service.Delete()
|
||||
c.JSON(200, res)
|
||||
} else {
|
||||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -456,6 +456,8 @@ func InitMasterRouter() *gin.Engine {
|
|||
node.POST("", controllers.AdminAddNode)
|
||||
// 启用/暂停节点
|
||||
node.PATCH("enable/:id/:desired", controllers.AdminToggleNode)
|
||||
// 删除节点
|
||||
node.DELETE(":id", controllers.AdminDeleteNode)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -95,3 +95,29 @@ func (service *ToggleNodeService) Toggle() serializer.Response {
|
|||
|
||||
return serializer.Response{}
|
||||
}
|
||||
|
||||
// NodeService 节点ID服务
|
||||
type NodeService struct {
|
||||
ID uint `uri:"id" json:"id" binding:"required"`
|
||||
}
|
||||
|
||||
// Delete 删除节点
|
||||
func (service *NodeService) Delete() serializer.Response {
|
||||
// 查找用户组
|
||||
node, err := model.GetNodeByID(service.ID)
|
||||
if err != nil {
|
||||
return serializer.Err(serializer.CodeNotFound, "节点不存在", err)
|
||||
}
|
||||
|
||||
// 是否为系统节点
|
||||
if node.ID <= 1 {
|
||||
return serializer.Err(serializer.CodeNoPermissionErr, "系统节点无法删除", err)
|
||||
}
|
||||
|
||||
cluster.Default.Delete(node.ID)
|
||||
if err := model.DB.Delete(&node).Error; err != nil {
|
||||
return serializer.DBErr("无法删除节点", err)
|
||||
}
|
||||
|
||||
return serializer.Response{}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue