SimpleHR project
fix-task 0803 — 수정완료 항목
sourceedited by Cairni · 방금 · AIv1
개요
2026-08-03 배포분 수정 완료 항목을 기록한 소스 문서. 총 9개 완료 항목, 2개 후속·미완료 항목 포함. fix-task 0803 — 수정완료 항목
완료 항목 요약
1. 공인 IP만 수집하도록 구현
- 출퇴근 시 외부(공인) IP만 캡처하도록 수정.
- 후속(미완료):
attendance_service의check_in·check_out에_is_private_ip조건 추가(fail-closed) —get_client_ip공인 IP 복구 검증 완료 후 활성화 예정. 관련 스펙: gps-attendance-spec
2. GPS 미확보 시 IP 폴백 출퇴근 (커밋 c49b67e6)
- GPS 미확보(
!myGps) 상태에서 근무지에allowed_ips가 있으면 "IP로 출퇴근" 노출·처리. - 서버 측
client_ip ∈ allowed_ips검증, 출근/퇴근 대칭,ATT_IP_NO_ALLOWLIST거절 하드닝 포함. - 정확도 기반 폴백 추가: GPS는 잡혔으나 정확도가 임계값(
gps_required_accuracy, 기본 200m) 초과 시 저정밀 판정 → IP 폴백 노출·기본선택 + 안내 배너 표시. 프론트 전용(백엔드 무변경).
3. 정산 메뉴 최고관리자 전용 노출
/admin/billing을admin_menu.py카탈로그에 추가.- 최고관리자 기본 노출, 역할관리를 통해 타 관리자에 부여/회수 가능.
- 레거시
["*"]관리자는 여전히 노출(커스텀 역할 지정으로 제한 가능). 관련: admin-role-management-spec, pricing-spec
4. [보안] 백엔드 메뉴 게이팅 전역 버그 수정
/admin단독 키가 모든/admin/*하위 경로의 부모로 처리되던 문제 → 대시보드만 가진 관리자가 API 직접 호출로 전체 admin API 접근 가능하던 보안 취약점.menu_enforcement.py에서/admin정확일치 가드 추가,_MENU_PREFIXES에/admin/billing포함.- 회귀 매트릭스: 대시보드-only → 전 매핑 admin API 403, 하위상속 200 유지,
is_system/["*"]전부 허용, 정산 API 최고관리자 200·미부여 403. - 대시보드 역할별 위젯 게이팅: 권한 없는 도메인 위젯·HERO 근태 viz를
menu_keys로 게이팅(403 노출 방지). 관련: menu-plan-access-control
5. 정산 화면 — 무료 체험 상태 표시
- 백엔드 응답에
status·is_trial·trial_end_date·trial_days_left추가. - 정산 화면: 무료 체험 시 "무료 이용중" 배지 + 종료일·D-n 표시, 이후 월 청구 안내.
- 유료전환 자동청구·PG 연동은 후속 단계로 범위 제외. 관련: billing-system-design, pricing-policy
6. 급여관리 항목별 설명 추가
- 급여관리 화면 각 항목에 설명 문구 추가. 관련: payroll-management-spec
7. 초기 설정 가이드 — 완료 후 바로가기 전환
- 설정 완료(
allDone) 시 체크리스트 → 바로가기 링크 리스트 8개로 전환(회사 기본 설정·회계·급여 정책 등). - 체크·취소선·진행바·카운터 제거, 헤더 "바로가기"로 변경. 프론트 전용(
SetupGuideChecklist.tsx). 관련: setup-guide-redesign-spec
8. 교대근무 근무명 연동 (순환패턴 자동 반영)
- 순환패턴 라벨 맵
CL을 정적 값(주간/오후/야간)에서team_name파생으로 변경(D→teams[0], E→teams[1], N→teams[last]). - 근무명 변경 시 순환패턴 셀·미리보기·52h 경고 메시지 자동 반영. 프론트 전용.
- 후속 정렬: E조 매핑 불일치(
getH·getHours·CLvsShiftRosterGrid.resolvePatternCode) → 4곳 모두E→(length>=3 ? [1] : [0])로 통일. - 미완료(별도 후속): 4교대·CUSTOM 순환패턴 중간 조 미지원 —
is3Shift조건으로 CELLS가[D,N,OFF]만 생성되어 중간 조 자동배치 불가. 구조적 한계로 설계 개편 필요. 관련: shift-work-management-spec
9. 이러닝 등록 안내 플로우 및 실연동 테스트
- 이러닝관리 상단에 등록 순서 안내 접이식 패널(6단계, 나야넷 선등록 전제) 추가.
- 실서버 넥스트코어 이러닝 등록 테스트 완료.
- 후속 권고: 나야넷 발송 키 사용 예정이라면
memID저장 IntegrityError→400, 다중접속 500 방지 항목을 조만간 반영 권장(현재 당장 문제 없음).
후속·미완료 항목 요약
0803 후속 항목 상태AI · 출처 클릭
완료6
GPS→IP 폴백 출퇴근 (c49b67e6)
fix-task 0803 — 수정완료 항목
정산 메뉴 최고관리자 전용 노출
fix-task 0803 — 수정완료 항목
메뉴 게이팅 보안 버그 수정
fix-task 0803 — 수정완료 항목
무료체험 배지·D-n 표시
fix-task 0803 — 수정완료 항목
교대근무 근무명 순환패턴 연동
fix-task 0803 — 수정완료 항목
이러닝 등록 안내 패널 + 실연동 테스트
fix-task 0803 — 수정완료 항목
후속 대기5
IP fail-closed: _is_private_ip 조건 활성화 (get_client_ip 검증 후)
fix-task 0803 — 수정완료 항목
4교대·CUSTOM 중간 조 순환패턴 지원 설계
fix-task 0803 — 수정완료 항목
나야넷 memID IntegrityError·다중접속 500 방지
fix-task 0803 — 수정완료 항목
유료전환 자동청구·PG 연동 (별도 단계)
fix-task 0803 — 수정완료 항목
대시보드 HERO role-adaptive 리디자인
fix-task 0803 — 수정완료 항목