fix(부서관리): 25개 버그 일괄 수정 + 데이터 무결성 강화 #4

Merged
johngreen merged 2 commits from johngreen into main 2026-05-08 09:48:20 +00:00
Contributor

Summary

  • 부서관리 페이지 25개 버그 수정 (CRITICAL 3 / HIGH 11 / MEDIUM 7 / LOW 4)
  • 부서원 추가/제거 UI 신규 구현
  • DB 인덱스로 부서명/부서원 중복 race 방어 (RUN_085)
  • 분석 리포트 6건 (notes/johngreen/2026-05-08-부서관리-*)

Critical 수정

  • searchUsers 회사/role 격리 가드 (멀티테넌시 침해 차단)
  • setPrimaryDept 멤버십 검증 (주부서 데이터 손상 방지)
  • parent_dept_code cross-tenant 검증

Breaking changes

  • 일괄등록 CSV 4컬럼 → 3컬럼 (부서명,상위부서,유형)
  • 부서코드 입력란 제거 (자동 부여 DEPT_n)

DB 마이그레이션

  • RUN_085 적용됨 (siflex/test01/test02_invyone 테넌트 DB)
  • 코드 배포 전 미리 적용되어 있어 안전

Test plan

  • 부서 신규/수정/삭제/복구
  • 부서원 추가/제거/주부서 설정
  • 검색 트리 정상 표시
  • 일괄등록 (3컬럼 CSV)
  • 회사 변경 시 상세 패널 초기화
  • picker 최상위 이동 옵션
## Summary - 부서관리 페이지 25개 버그 수정 (CRITICAL 3 / HIGH 11 / MEDIUM 7 / LOW 4) - 부서원 추가/제거 UI 신규 구현 - DB 인덱스로 부서명/부서원 중복 race 방어 (RUN_085) - 분석 리포트 6건 (notes/johngreen/2026-05-08-부서관리-*) ## Critical 수정 - searchUsers 회사/role 격리 가드 (멀티테넌시 침해 차단) - setPrimaryDept 멤버십 검증 (주부서 데이터 손상 방지) - parent_dept_code cross-tenant 검증 ## Breaking changes - 일괄등록 CSV 4컬럼 → 3컬럼 (부서명,상위부서,유형) - 부서코드 입력란 제거 (자동 부여 DEPT_n) ## DB 마이그레이션 - RUN_085 적용됨 (siflex/test01/test02_invyone 테넌트 DB) - 코드 배포 전 미리 적용되어 있어 안전 ## Test plan - [ ] 부서 신규/수정/삭제/복구 - [ ] 부서원 추가/제거/주부서 설정 - [ ] 검색 트리 정상 표시 - [ ] 일괄등록 (3컬럼 CSV) - [ ] 회사 변경 시 상세 패널 초기화 - [ ] picker 최상위 이동 옵션
johngreen added 2 commits 2026-05-08 09:47:53 +00:00
CRITICAL:
- searchUsers 회사/role 격리 가드 추가 (멀티테넌시 침해 차단)
- setPrimaryDept 멤버십 검증 추가 (주부서 데이터 손상 방지)
- parent_dept_code cross-tenant 검증 (validateParent 헬퍼)

HIGH:
- updateDepartment SQL WHERE 에 DELETED_AT IS NULL 추가 (silent corruption 방지)
- update/restore 부서명 중복 검증 추가
- 글로벌 부서 (*) write 작업 SUPER_ADMIN 전용 가드
- 부서코드 자동 생성으로 강제 (사용자 입력 받지 않음)
- 회사 변경 시 상세 패널 초기화
- handleMove 부분 실패 시 화면 동기화
- 검색 시 부모 체인 자동 포함 (broken tree 수정)
- start_date 기본값 today 강제 제거

MEDIUM:
- 멤버 fetch cancellation flag
- 삭제 다이얼로그 dept_code 클로저 캡처
- isDirty 시 X 버튼 폼 초기화 경고
- 변경이력 버튼 disabled (백엔드 API 미구현)
- 일괄등록 실패 상세 모달 (라인 + 사유)
- LIKE 와일드카드 ESCAPE 적용
- nullIfBlank 에 trim 통합

LOW + 새 기능:
- 부서원 추가/제거 UI 신규 구현 (UserSearchModal)
- selectDeptMembers LEFT JOIN 으로 변경
- DepartmentPicker allowRoot 옵션 (최상위로 이동)
- expandAll 전체 departments 사용
- dead code 정리

DB:
- RUN_085 마이그레이션: DEPT_INFO partial UNIQUE + USER_DEPT UNIQUE
- 모든 active 테넌트 DB (siflex/test01/test02_invyone) 적용 완료

Breaking changes:
- 일괄등록 CSV 4컬럼 → 3컬럼 (부서명,상위부서,유형)
- 부서코드 입력란 제거 (자동 부여 DEPT_n)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4개 도메인 병렬 분석 결과 + 통합 요약 + 시나리오 중심 정리.
총 25개 버그 (CRITICAL 3 / HIGH 11 / MEDIUM 7 / LOW 4) 식별.
실제 수정은 별도 커밋 (commit 68c1cb5b).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
johngreen merged commit f0781022de into main 2026-05-08 09:48:20 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gbpark/invyone#4