/SimpleHR project
SimpleHR project

fix-task 0803 — 수정완료 항목

sourceedited by Cairni · 방금 · AIv1

개요

2026-08-03 배포분 수정 완료 항목을 기록한 소스 문서. 총 9개 완료 항목, 2개 후속·미완료 항목 포함. fix-task 0803 — 수정완료 항목


완료 항목 요약

1. 공인 IP만 수집하도록 구현

  • 출퇴근 시 외부(공인) IP만 캡처하도록 수정.
  • 후속(미완료): attendance_servicecheck_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/billingadmin_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. 급여관리 항목별 설명 추가

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·CL vs ShiftRosterGrid.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 — 수정완료 항목

관련 페이지

Made with CairniExplore public wikis →