fix: 删除网站时自动解除证书关联

This commit is contained in:
耗子
2026-08-12 18:46:19 +08:00
parent ca42c9ec16
commit 987caef5de
2 changed files with 16 additions and 5 deletions
-3
View File
@@ -171,9 +171,6 @@ func (uc *WebsiteUsecase) Delete(ctx context.Context, req *request.WebsiteDelete
if err != nil {
return err
}
if website.Cert != nil {
return errors.New(uc.t.Get("website %s has bound certificates, please delete the certificate first", website.Name))
}
// 清理防篡改规则
if req.Path && website.Path != "" {
+16 -2
View File
@@ -784,7 +784,7 @@ func (r *websiteRepo) applyUpdate(req *request.WebsiteUpdate, website *biz.Websi
func (r *websiteRepo) GetForDelete(id uint) (*biz.Website, error) {
website := new(biz.Website)
if err := r.db.Preload("Cert").Where("id", id).First(website).Error; err != nil {
if err := r.db.Where("id", id).First(website).Error; err != nil {
return nil, err
}
return website, nil
@@ -803,7 +803,21 @@ func (r *websiteRepo) RemoveFiles(name string, removePath bool) error {
}
func (r *websiteRepo) Delete(website *biz.Website) error {
return r.db.Delete(website).Error
return r.db.Transaction(func(tx *gorm.DB) error {
// HTTP 验证依赖网站,解绑后无法继续自动续签
if err := tx.Model(&biz.Cert{}).
Where("website_id = ? AND dns_id = 0", website.ID).
Update("auto_renewal", false).Error; err != nil {
return err
}
if err := tx.Model(&biz.Cert{}).
Where("website_id = ?", website.ID).
Update("website_id", 0).Error; err != nil {
return err
}
return tx.Delete(website).Error
})
}
func (r *websiteRepo) UpdateRemark(id uint, remark string) error {