Project can't chain tasks to itself

This commit is contained in:
simon987 2019-02-25 19:12:08 -05:00
parent df7f91a475
commit b2fcf6fce4
3 changed files with 18 additions and 14 deletions

View File

@ -157,7 +157,7 @@ type UpdateProjectRequest struct {
SubmitRate rate.Limit `json:"submit_rate"` SubmitRate rate.Limit `json:"submit_rate"`
} }
func (req *UpdateProjectRequest) isValid() bool { func (req *UpdateProjectRequest) isValid(pid int64) bool {
if len(req.Name) <= 0 { if len(req.Name) <= 0 {
return false return false
} }
@ -167,6 +167,9 @@ func (req *UpdateProjectRequest) isValid() bool {
if req.Hidden && req.Public { if req.Hidden && req.Public {
return false return false
} }
if req.Chain == pid {
return false
}
return true return true
} }

View File

@ -157,7 +157,7 @@ func (api *WebAPI) UpdateProject(r *Request) {
return return
} }
if !updateReq.isValid() { if !updateReq.isValid(id) {
r.Json(JsonResponse{ r.Json(JsonResponse{
Ok: false, Ok: false,
Message: "Invalid request", Message: "Invalid request",

View File

@ -77,11 +77,12 @@ func (api *WebAPI) SubmitTask(r *Request) {
Message: err.Error(), Message: err.Error(),
}, 400) }, 400)
reservation.Cancel() reservation.Cancel()
} else { return
r.OkJson(JsonResponse{
Ok: true,
})
} }
r.OkJson(JsonResponse{
Ok: true,
})
} }
func (api *WebAPI) GetTaskFromProject(r *Request) { func (api *WebAPI) GetTaskFromProject(r *Request) {
@ -123,17 +124,17 @@ func (api *WebAPI) GetTaskFromProject(r *Request) {
Message: "No task available", Message: "No task available",
}) })
reservation.CancelAt(time.Now()) reservation.CancelAt(time.Now())
} else { return
r.OkJson(JsonResponse{
Ok: true,
Content: GetTaskResponse{
Task: task,
},
})
} }
r.OkJson(JsonResponse{
Ok: true,
Content: GetTaskResponse{
Task: task,
},
})
} }
func (api WebAPI) validateSignature(r *Request) (*storage.Worker, error) { func (api WebAPI) validateSignature(r *Request) (*storage.Worker, error) {
widStr := string(r.Ctx.Request.Header.Peek("X-Worker-Id")) widStr := string(r.Ctx.Request.Header.Peek("X-Worker-Id"))