Commit Graph

10 Commits

Author SHA1 Message Date
gbpark 68f85f3736 회사 관리 기능 확장 + 테넌트/비번 보안 하드닝
- 첫 로그인 비번 강제 변경 (RUN_082): FORCE_PASSWORD_CHANGE 컬럼,
  ForcePasswordChangeGuardFilter, /auth/change-password API + 페이지
- 테넌트 일관성 가드: TenantConsistencyGuardFilter 로 JWT.company_code
  ↔ 서브도메인 company_code 대조, CompanyResolver 가 (db_name, company_code)
  동시 반환
- 회사 관리 확장 (RUN_083 audit log, RUN_084 lifecycle 컬럼):
  CompanyAdmin/Members/Templates/Lifecycle/AuditLog 서비스 +
  CompanyMgmtController + SuperAdminGuard
- 회사 관리 UI: CompanyAccordionRow 탭화 + 모달 4종
  (AdminInfo/Deactivate/Delete/RecopyTemplates) + AuditLogDrawer + csvExport
- 프로비저닝 마법사: force_password_change 토글 반영
- 프론트 인증: storage 이벤트 멀티탭 동기화, 403 errorCode
  (PASSWORD_CHANGE_REQUIRED / CROSS_TENANT_REJECTED / TENANT_NOT_RESOLVED)
  전역 리다이렉트
- 기타: StartupSchemaMigrator, OS별 도커 기동 스크립트, CLAUDE.md 트래킹

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 00:36:05 +09:00
gbpark 4603ac7fd6 디자인 수정 2026-04-08 02:27:27 +09:00
DDD1542 b7f9e51d62 [agent-pipeline] pipe-20260328153638-axu2 round-1 2026-03-29 01:52:38 +09:00
DDD1542 8695be1a8d [agent-pipeline] pipe-20260328115913-ckmt round-1 2026-03-28 21:20:26 +09:00
DDD1542 21e30e5f60 [agent-pipeline] pipe-20260328055039-5mki round-1 2026-03-28 15:14:38 +09:00
DDD1542 1c324e4487 [agent-pipeline] pipe-20260327131904-jedw round-5 2026-03-28 00:01:33 +09:00
DDD1542 2759b55cce [agent-pipeline] pipe-20260327131904-jedw round-3 2026-03-27 23:48:37 +09:00
DDD1542 c73628e57a [agent-pipeline] pipe-20260327131904-jedw round-2 2026-03-27 23:23:52 +09:00
DDD1542 65ad32ca75 [agent-pipeline] pipe-20260327131904-jedw round-1 2026-03-27 22:27:38 +09:00
DDD1542 3923dbefa0 [agent-pipeline] pipe-20260327053504-cc40 round-2 2026-03-27 18:11:56 +09:00