Hyungi Ahn
ba2e3481e9
feat(vacation): 이월연차 만료 시스템 + 대시보드 합산 개선
...
- createBalance/bulkUpsert에서 CARRY_OVER expires_at 자동 설정
(carry_over_expiry_month 설정 기반, 기본값 2월말)
- deductByPriority/deductDays 쿼리에 만료 필터 추가
(expires_at >= CURDATE() 조건, 만료된 이월 차감 제외)
- 대시보드 합산에서 만료된 잔액 제외
- DB 보정 완료: CARRY_OVER 8건 expires_at 설정,
황인용/최광욱 소급 재계산 (이월 우선 차감 반영)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 12:27:17 +09:00
Hyungi Ahn
f09c86ee01
fix(security): CRITICAL 보안 이슈 13건 일괄 수정
...
- SEC-42: JWT algorithm HS256 명시 (sign 5곳, verify 3곳)
- SEC-44: MariaDB/PhpMyAdmin 포트 127.0.0.1 바인딩
- SEC-29: escHtml = escapeHtml alias 추가 (XSS 방지)
- SEC-39: Python Dockerfile 4개 non-root user + chown
- SEC-43: deploy-remote.sh 삭제 (평문 비밀번호 포함)
- SEC-11,12: SQL SET ? → 명시적 컬럼 whitelist + IN절 parameterized
- QA-34: vacation approveRequest/cancelRequest 트랜잭션 래핑
- SEC-32,34: material_comparison.py 5개 엔드포인트 인증 + confirmed_by
- SEC-33: files.py 17개 미인증 엔드포인트 인증 추가
- SEC-37: chatbot 프롬프트 인젝션 방어 (sanitize + XML 구분자)
- SEC-38: fastapi-bridge 프록시 JWT 검증 + 캐시 키 user_id 포함
- SEC-58/QA-98: monthly-comparison API_BASE_URL 수정 + 401 처리
- SEC-61: monthlyComparisonModel SELECT FOR UPDATE 추가
- SEC-63: proxyInputController 에러 메시지 노출 제거
- QA-103: pageAccessRoutes error→message 통일
- SEC-62: tbm-create onclick 인젝션 → data-attribute event delegation
- QA-99: tbm-mobile/create 캐시 버스팅 갱신
- QA-100,101: ESC 키 리스너 cleanup 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-01 10:48:58 +09:00
Hyungi Ahn
9cbf4c98a5
fix(vacation): 배정일수 음수 허용 + 특별휴가 우선 차감
...
- vbTotalDays min="0" 제거 (보정용 음수 입력 허용)
- deductDays 2단계 차감:
1단계: vacation_type_id 정확 매칭 잔액 우선 (배우자출산 등)
2단계: 나머지를 이월→기본→추가→장기→회사 순서로
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 09:32:51 +09:00
Hyungi Ahn
6a721258b8
fix(tksupport): 휴가 차감 우선순위 적용 (이월→기본→추가→장기→회사)
...
단순 UPDATE → 트랜잭션 + 우선순위 순차 차감으로 변경.
이월 연차부터 먼저 소진되도록 보장.
복원도 역순(회사→장기→추가→기본→이월) 적용.
참조: system1-factory/api/models/vacationBalanceModel.js deductByPriority
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-31 08:53:56 +09:00
Hyungi Ahn
d663b9bfa6
feat(tksupport): 휴가 보정 관리 페이지 추가 — 캘린더 기반 추가/삭제
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-25 14:12:14 +09:00
Hyungi Ahn
36391c02e1
feat(tksupport): Sprint 001 Section C — 전사 휴가관리 구현
...
- 전사 휴가 부여/관리 (company-holidays) CRUD + 연차차감 트랜잭션
- 전체 휴가관리 대시보드 (vacation-dashboard) 부서별/직원별 현황
- 내 휴가 현황 개선 (/my-status) balance_type별 카드, 전사 휴가일
- requireSupportTeam 미들웨어, 부서명 JOIN, 마이그레이션 002 추가
- 사이드바 roles 기반 메뉴 필터링 (하위호환 유지)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 08:16:50 +09:00
Hyungi Ahn
3011495e6d
feat(tksupport): 전사 행정지원 서비스 신규 구축 (Phase 1 - 휴가신청)
...
sso_users 기반 전사 휴가신청/승인/잔여일 관리 서비스.
기존 tkfb의 workers 종속 휴가 기능을 전사 확장.
- API: Express + MariaDB, SSO JWT 인증, 자동 마이그레이션
- Web: 대시보드, 휴가 신청/현황/승인 페이지 (보라색 테마)
- DB: sp_vacation_requests, sp_vacation_balances 신규 테이블
- Docker: API(30600), Web(30680) 포트 구성
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 15:39:59 +09:00