feat: 저장소 설정 권한 게이팅 + Gitea 역동기화 + 설정 로직 정비
설정 탭/권한: - findOne/update 응답에 현재 사용자 권한(canManage=admin, isOwner=소유자) 포함 (목록은 캐시·사용자 무관이라 미포함). RepoTabs 가 canManage 일 때만 설정 탭 노출, 비관리자의 설정 화면 직접 진입은 저장소 상세로 리다이렉트. 입력 비활성화 처리 제거. - 저장소 삭제는 isOwner 일 때만(비소유자 admin 엔 비활성+안내). 설정 로직 버그/정리: - update 가 이전 값과 비교해 실제 변경분만 활동/Gitea/캐시 반영 (무변경 저장 시 허위 'renamed'/'visibility_changed' 활동이 쌓이던 버그 수정). - 위험구역의 미구현 'Gitea 저장소 이름 변경'(slug rename) 스텁 제거. - 조직 owner 아바타(하드코딩 'M') 제거. Gitea 역동기화(Gitea=SSOT): - 동기화 매칭 시 slug(rename)·공개범위·기본 브랜치를 Gitea 기준으로 끌어옴 → Gitea 에서 직접 바꿔도 Relay 가 따라가고 slugName 도 갱신돼 쓰기 경로 일치 (rename 후 옛 이름으로 쓰기 호출이 404 나던 desync 해소). 중복 매칭 가드 추가. - 표시명/설명은 Gitea 단일 description 합본 구조라 Relay-SSOT 유지(외부 편집 시 깨짐 방지). - GiteaService.updateRepo 에 default_branch 추가 + update 가 브랜치도 Gitea 에 푸시(양방향 일치). 검증: 백엔드 build/lint 0·20 tests, 프론트 type-check/lint/build 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -65,6 +65,10 @@ export interface Repo {
|
||||
htmlUrl?: string | null
|
||||
/** Gitea 조직에서 사라진 저장소 표시(역방향 동기화로 갱신) */
|
||||
giteaMissing?: boolean
|
||||
/** 현재 사용자가 이 저장소 관리자(admin)인지 — 단건 조회에서만 채워짐(설정 탭 노출/진입) */
|
||||
canManage?: boolean
|
||||
/** 현재 사용자가 소유자인지 — 저장소 삭제 권한 */
|
||||
isOwner?: boolean
|
||||
}
|
||||
|
||||
/** 저장소 상세의 업무 목록 행 */
|
||||
|
||||
Reference in New Issue
Block a user