ID: key_26_22_05_25_P2_2_5 Created date: 5월 25 2026 월요일
연관 문서
개요
프로젝트 기본 정보 수정 및 멤버 관리 UI를 구현한다.
역할(RBAC) 기반 권한 설정을 포함한다.
- 예상 소요: 2~3일
- 선행 조건: Phase 1 완료
- 완료 기준: 프로젝트 관리자가 멤버 추가/제거/역할 변경 가능 확인
Claude Code 작업 수행서
작업 지시
CIRA 서버 + UI에 프로젝트 설정 기능을 구현해줘.
[서버 수행 작업]
1. 프로젝트 설정 API
PUT /api/v1/projects/{projectId} — 프로젝트 기본 정보 수정
GET /api/v1/projects/{projectId}/members — 멤버 목록
POST /api/v1/projects/{projectId}/members — 멤버 추가 (이메일로 초대)
PUT /api/v1/projects/{projectId}/members/{userId}/role — 역할 변경
DELETE /api/v1/projects/{projectId}/members/{userId} — 멤버 제거
2. 권한 제어
- 멤버 추가/제거/역할 변경: ADMIN 또는 프로젝트 Owner만 가능
- Owner 자신을 제거 불가 (마지막 Admin 보호)
- 역할: ADMIN, DEVELOPER, REPORTER, VIEWER
3. 멤버 초대
- 이메일로 기존 users 테이블 검색
- 없는 경우: 에러 (USER_NOT_FOUND) — 초대 이메일 발송은 Phase 3
- 이미 멤버인 경우: 에러 (PROJECT_MEMBER_ALREADY_EXISTS)
[UI 수행 작업]
4. 설정 페이지 구조
파일: src/app/(main)/projects/[projectId]/settings/
├── page.tsx → /settings (기본 정보)
├── members/page.tsx → /settings/members
└── workflow/page.tsx → /settings/workflow (상태 전이 규칙)
5. 기본 정보 탭
- 프로젝트 이름 수정
- 설명 수정
- 프로젝트 키 표시 (수정 불가 — 이슈 키에 영향)
- 프로젝트 타입 (SCRUM / KANBAN)
- 저장 버튼
6. 멤버 관리 탭
컴포넌트: MemberTable
- 컬럼: 아바타, 이름, 이메일, 역할 드롭다운, 제거 버튼
- 역할 드롭다운: ADMIN만 변경 가능
- 멤버 추가 버튼 → AddMemberModal
* 이메일 입력 + 역할 선택
* 추가 시 즉시 목록 반영
7. 워크플로우 탭 (간단 버전)
- 현재 상태 목록 표시
- 상태 추가/삭제 (Admin만)
- 상태 전이 규칙 매트릭스 (체크박스 형태)
- 저장 시 issue_transitions 테이블 일괄 업데이트
8. 설정 네비게이션
- 좌측 사이드 탭 메뉴
- 현재 사용자가 ADMIN이 아니면 설정 메뉴 비노출
완료 기준
| 항목 | 기준 |
|---|---|
| 기본 정보 수정 | 저장 후 즉시 반영 |
| 멤버 추가 | 이메일 검색 → 추가 → 목록 반영 |
| 역할 변경 | ADMIN만 가능, 즉시 반영 |
| 멤버 제거 | 확인 다이얼로그 → 제거 |
| 권한 제어 | 비ADMIN 접근 시 버튼 비활성 |