fix(platform): protect role status updates

This commit is contained in:
2026-07-27 01:49:02 +08:00
parent c5600cf1db
commit 4367da50fd
4 changed files with 188 additions and 13 deletions

View File

@@ -77,11 +77,7 @@ func UpdatePlatformRoleStatus(ctx *gin.Context) {
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
return
}
if err := impl.DBService.Model(&role).Update("status", request.Status).Error; err != nil {
infra.Response.Error(ctx, err)
return
}
infra.Response.Success(ctx, gin.H{"updated": true})
updateAllowedByIdentity(ctx, &models.PlatformRole{}, gin.H{"status": request.Status}, []string{"status"})
}
// ArchivePlatformRole 归档非内置平台角色,系统角色始终受保护。
@@ -95,11 +91,7 @@ func ArchivePlatformRole(ctx *gin.Context) {
infra.Response.Error(ctx, errcode.ErrInvalidArgument)
return
}
if err := impl.DBService.Model(&role).Update("status", "archived").Error; err != nil {
infra.Response.Error(ctx, err)
return
}
infra.Response.Success(ctx, gin.H{"updated": true})
updateAllowedByIdentity(ctx, &models.PlatformRole{}, archiveValues(), []string{"status"})
}
// ListPlatformMenu 返回菜单树构建所需的有序菜单列表。