Hyungi Ahn
36cf9d553d
fix(tkuser): Sprint 001 리뷰 권장 개선 3건 — 방어 코딩 및 일관성 보완
...
- setLongServiceExclusion: affectedRows 체크 추가 (존재하지 않는 user_id → 404)
- ACCESS_LEVELS: user: 1 키 추가 (role='user' 사용자 레벨 0 방지)
- escapeHtml → escHtml 통일 (tkuser-vacations.js 라인 381)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-23 08:27:54 +09:00
Hyungi Ahn
84cf222b81
feat(tkuser): 알림 시스템 이관 system1-factory → tkuser
...
- Phase 1: tkuser에 알림 CRUD, Push/ntfy 발송, 내부 알림 API 추가
- Phase 2: notifyHelper URL을 tkuser-api:3000으로 전환 (system2, tkpurchase, tksafety, system1)
- Phase 3: notification-bell.js API 도메인 tkuser로 변경 + 캐시 버스팅 v=4
- Phase 4: system1에서 알림 코드 제거 (routes, controllers, models, utils)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-17 15:56:41 +09:00
Hyungi Ahn
f711a721ec
feat(tkuser): 협력업체 CRUD 권한을 permission 시스템으로 확장
...
tkuser.partners 권한이 부여된 일반 사용자도 업체/작업자 등록·수정·비활성화 가능.
완전삭제는 admin 전용 유지.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-16 11:23:17 +09:00
Hyungi Ahn
12367dd3a1
fix(security): 전체 서비스 보안 점검 — XSS·인가·토큰·헤더·에러마스킹 일괄 수정
...
Phase 1 CRITICAL XSS:
- marked.parse() → DOMPurify.sanitize() (system3 ai-assistant, issues-management)
- toast innerHTML에 escapeHtml 적용 (system1 api-base, system3 common-header)
- onclick 핸들러 → data 속성 + addEventListener (system2 issue-detail)
Phase 2 HIGH 인가:
- getUserBalance 본인확인 추가 (tksupport vacationController)
Phase 3 HIGH 토큰+CSP:
- localStorage 토큰 저장 제거 — 쿠키 전용 (7개 서비스)
- unsafe-eval CSP 제거 (system1 security.js)
Phase 4 MEDIUM:
- nginx 보안 헤더 추가 (8개 서비스)
- 500 에러 메시지 마스킹 (5개 API)
- path traversal 방지 (system3 file_service.py)
- cookie fallback 데드코드 제거 (4개 auth.js)
- /login/form rate limiting 추가 (sso-auth)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-13 19:50:00 +09:00
Hyungi Ahn
5aeda43605
fix: 전 시스템 Chrome 무한 로그인 루프 해결 및 role 대소문자 통일
...
- gateway: 로그인 페이지 자동 리다이렉트 시 SSO 쿠키 재설정 + Cache-Control no-store
- tkreport(system2): SW 해제, 401 핸들러 리다이렉트 제거, 루프 방지, localStorage 백업
- TKQC 모바일(system3): mCheckAuth를 authManager 위임으로 변경, 루프 방지
- TKQC 공통(system3): api.js 로그인 URL 캐시 버스팅, auth-manager localStorage 백업
- tkuser: SW 해제, 401 핸들러 수정, 루프 방지, localStorage 백업, requireAdmin role 소문자 통일
- system1: 작업보고서 admin role 대소문자 무시, refresh 토큰에 role 필드 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 14:10:46 +09:00
Hyungi Ahn
733bb0cb35
feat: tkuser 통합 관리 서비스 + 전체 시스템 SSO 쿠키 인증 통합
...
- tkuser 서비스 신규 추가 (API + Web)
- 사용자/권한/프로젝트/부서/작업자/작업장/설비/작업/휴가 통합 관리
- 작업장 탭: 공장→작업장 드릴다운 네비게이션 + 구역지도 클릭 연동
- 작업 탭: 공정(work_types)→작업(tasks) 계층 관리
- 휴가 탭: 유형 관리 + 연차 배정(근로기준법 자동계산)
- 전 시스템 SSO 쿠키 인증으로 통합 (.technicalkorea.net 공유)
- System 2: 작업 이슈 리포트 기능 강화
- System 3: tkuser API 연동, 페이지 권한 체계 적용
- docker-compose에 tkuser-api, tkuser-web 서비스 추가
- ARCHITECTURE.md, DEPLOYMENT.md 문서 작성
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 13:45:52 +09:00