fix: delete associations first when deleting token or machine
All checks were successful
continuous-integration/drone/tag Build is passing

This commit is contained in:
henne 2025-03-08 20:30:12 +01:00
parent 95e9ae41ef
commit 402f755497

16
main.go
View file

@ -121,14 +121,26 @@ func editMachine(c *gin.Context) {
c.Redirect(http.StatusFound, "/machines")
}
func deleteMachine(c *gin.Context) {
if err := db.DB.Where("id = ?", c.Param("id")).Delete(db.Machine{}).Error; err != nil {
var machine db.Machine
if err := db.DB.Where("id = ?", c.Param("id")).First(&machine).Error; err != nil {
returnInternalError(c, err)
return
}
db.DB.Model(&machine).Association("Tokens").Clear()
if err := db.DB.Delete(machine).Error; err != nil {
returnInternalError(c, err)
return
}
c.Redirect(http.StatusFound, "/machines")
}
func deleteToken(c *gin.Context) {
if err := db.DB.Where("id = ?", c.Param("id")).Delete(db.Token{}).Error; err != nil {
var token db.Token
if err := db.DB.Where("id = ?", c.Param("id")).First(&token).Error; err != nil {
returnInternalError(c, err)
return
}
db.DB.Model(&token).Association("Machines").Clear()
if err := db.DB.Delete(token).Error; err != nil {
returnInternalError(c, err)
return
}