团队管理:重命名与删除团队

- 新接口:PATCH /api/teams/:id 重命名(1-40 字符)、DELETE /api/teams/:id 删除(均仅创建者);删除随外键级联清理成员/共享空间/Mock 接口
- TeamDialog:卡片右上 ✎ 内联重命名、🗑 删除二次确认(红色警示条,明示连带删除范围)
- 删除后若当前停留在该团队空间自动切回本地空间
- curl E2E:改名/越权 403/删除/空间级联失效全通过;浏览器验证改名与删除全流程;53 前端测试 + Go 构建通过
This commit is contained in:
logan committed 2026-09-18 13:40:32 +08:00
1 parent c6868b0ddd
commit 36df1cec83
8 files changed
+223 -10

No files matched your search

+26
View File
@@ -367,6 +367,32 @@ func (s *Store) IsTeamOwner(teamID, userID int64) (bool, error) {
return err == nil, err
}
// RenameTeam 重命名团队(权限由 API 层校验)
func (s *Store) RenameTeam(teamID int64, name string) error {
res, err := s.db.Exec(`UPDATE teams SET name = ? WHERE id = ?`, name, teamID)
if err != nil {
return err
}
n, _ := res.RowsAffected()
if n == 0 {
return ErrNotFound
}
return nil
}
// DeleteTeam 删除团队:成员 / 团队空间 / 其 Mock 接口随外键级联清理
func (s *Store) DeleteTeam(teamID int64) error {
res, err := s.db.Exec(`DELETE FROM teams WHERE id = ?`, teamID)
if err != nil {
return err
}
n, _ := res.RowsAffected()
if n == 0 {
return ErrNotFound
}
return nil
}
/* ---------------- 工作区(云端空间) ---------------- */
type Workspace struct {