Commit Graph
100 Commits
Author SHA1 Message Date
chan b582c82c6f feat: implement multi-identifier architecture (Issue #496)
- Database: Add user_login_ids table for 1:N identifier mapping and remove legacy login_id column
- Kratos: Update identity schema to use custom_login_ids array instead of a single id trait
- Backend: Implement syncCustomLoginIDs to collect isLoginId fields across tenant schemas
- Backend: Add backtracking logic to auto-assign session tenant based on used login identifier
- Backend: Add 409 Conflict exception handling for Create/Update operations
- AdminFront: Refactor UserDetailPage to a tabbed grid layout (Info, Tenants, Security)
- AdminFront: Show '로그인 ID' badge on tenant schema fields used for authentication
- UserFront: Remove legacy optional 'Login ID' input from signup flow
- Tests: Add multi-identifier repository tests and update handler tests
2026-04-02 16:07:33 +09:00
chan 1f9512a5a7 Merge pull request 'feat/id_login' (#497) from feat/id_login into dev
Reviewed-on: baron/baron-sso#497
2026-04-01 13:59:24 +09:00
chan 37bc1bba22 chore: add missing i18n keys and fix devfront formatting 2026-04-01 13:58:06 +09:00
chan 8a4dc1a320 i18 2026-04-01 13:55:57 +09:00
chan ded1e1f5c4 fix(backend): fix merge conflict artifact and undefined explicitLoginID in UserHandler 2026-04-01 13:45:56 +09:00
chan 634f869a84 Merge branch 'dev' into feat/id_login 2026-04-01 13:40:45 +09:00
chan 6c1da03e91 style(userfront): apply dart format 2026-04-01 13:36:34 +09:00
chan 5bf3ef3222 test(e2e): skip coordinate-based WASM tests on mobile 2026-04-01 13:34:23 +09:00
chan 5502e35dc5 chore(adminfront): fix any types and biome lint errors in adminApi.ts 2026-04-01 13:22:11 +09:00
chan fdffeacf50 fix(backend): fix loginIdField not being synced when companyCode is empty 2026-04-01 13:13:26 +09:00
chan 54a853a5c6 fix(backend): fix syncLoginID to allow fields named 'id' to be synced from custom schema 2026-04-01 13:03:39 +09:00
chan 27a7d226eb fix(backend): map Kratos traits id to loginId in UserSummary API response 2026-04-01 11:29:13 +09:00
chan a5fdeabd09 fix: resolve tenant user assignment bug (#490)
- Fix frontend payload mapping (tenantSlug -> companyCode) in adminApi.ts.
- Fix backend group member fetching to avoid dummy members in UserGroupService.List.
- Fix backend foreign key violation on group creation by distinguishing between tenant parent and group parent in UserGroupService.Create.
2026-04-01 11:19:09 +09:00
chan 6b30580f36 fix(backend): force keto outbox sync on explicit tenant assignment to self-heal missing relations 2026-03-31 17:51:53 +09:00
chan bc73b85909 feat(backend): auto-sync user group keto relation based on department in user update 2026-03-31 13:50:23 +09:00
chan 5029b8049b fix(backend): prevent duplicate key constraint on empty login id when syncing users 2026-03-31 13:11:32 +09:00
chan 2a162f0efe Merge pull request 'temp-branch' (#464) from temp-branch into dev
Reviewed-on: baron/baron-sso#464
2026-03-27 21:40:38 +09:00
chan dcc5708d17 린트 적용용 2026-03-27 21:37:40 +09:00
chan 809ece6a68 chore: ignore playwright artifacts in biome and fix minor devfront imports 2026-03-27 21:27:03 +09:00
chan 2e14c9d6fe test(backend): update expected error message for invalid company code to match korean translation 2026-03-27 21:18:51 +09:00
chan 543607069e fix(userfront): correctly display general signup errors in a dialog instead of password field 2026-03-27 20:59:00 +09:00
chan 13469b14fb fix: refine error messages for signup failure and company code 2026-03-27 20:39:49 +09:00
chan 603b9e0032 fix(backend): resolve signup issues by fixing tenant slug case-sensitivity and exposing Kratos errors 2026-03-27 20:03:50 +09:00
chan 987b4797bb style(userfront): add missing curly braces for flow control structures 2026-03-27 19:21:33 +09:00
chan 8f78dbf68c test(adminfront): add E2E tests for login ID validation and conflict handling 2026-03-27 19:06:51 +09:00
chan b3f33cfa30 Merge pull request 'temp-branch' (#461) from temp-branch into dev
Reviewed-on: baron/baron-sso#461
2026-03-27 19:02:42 +09:00
chan aa8dc05311 chore(i18n): fix sync errors by adding missing keys to ko and en locales 2026-03-27 18:48:19 +09:00
chan 17168bceae Merge branch 'dev' into temp-branch 2026-03-27 18:42:59 +09:00
chan a75ae1de9a format error 수정 2026-03-27 18:41:49 +09:00
chan f8d10c90b8 style(userfront): apply dart format 2026-03-27 18:10:32 +09:00
chan 6192220ec1 fix(adminfront): fix Biome lint errors by removing explicit any types 2026-03-27 18:02:53 +09:00
chan 5ae0e19e31 style: apply backend go fmt and frontend biome auto-fixes 2026-03-27 17:57:03 +09:00
chan 2383c6a6be Merge commit '6a50dc280f9c7e71fe09481ee76c4c9c6d5fe710' into temp-branch 2026-03-27 17:41:59 +09:00
chan ffba1563a7 chore: add missing i18n keys to satisfy i18n-scanner 2026-03-27 17:41:22 +09:00
chan 6a50dc280f chore: add missing i18n keys to satisfy i18n-scanner 2026-03-27 17:38:52 +09:00
chan 641e4aba0d fix(adminfront): fix auth redirection in tests and add custom field validation
- Skip auth redirect to `/login` when `_IS_TEST_MODE` is true to prevent test timeouts.
- Update `UserSchemaField` type and `TenantMetadataFields` to support regex validation patterns.
- Fix translation key for tenant profile metadata section title.
- Enhance OIDC mock data and mock endpoints in `users_schema.spec.ts`.
- Remove unreliable `waitForLoadState("networkidle")` to speed up test execution.
2026-03-27 17:30:30 +09:00
chan 75cc6737bd feat: add robust login ID collision prevention and UI validation (#440)
- Add `ValidateLoginID` to enforce ID collision and security rules (prevents phone number collision, email format usage, and reserved words).
- Add `POST /api/v1/auth/signup/check-login-id` endpoint for real-time ID availability checks.
- Add `checkLoginIDAvailability` API call to userfront's `AuthProxyService`.
- Implement "Check Duplication" button and error/success messaging for the Login ID field in the signup screen.
- Add "000000" magic code bypass for `VerifySignupCode` in non-production environments to streamline testing.
2026-03-27 11:19:28 +09:00
chan aa60a22d57 feat: restore explicit loginId field and add to userfront signup flow
- Revert the removal of loginId from adminfront and backend.
- Prevent phone normalization logic from mangling custom employee ID login fields.
- Add an explicit 'loginId' optional input field to the userfront signup UI.
- Update AuthProxyService.signup and backend AuthHandler.Signup to transmit and map the 'loginId' parameter properly.
2026-03-26 14:22:43 +09:00
chan 85b2049a61 fix(backend): improve LoginID synchronization from custom metadata fields
- Centralize LoginID sync logic in syncLoginID helper
- Support namespaced metadata in CreateUser, UpdateUser, and BulkCreateUsers
- Ensure UpdateUser and UpdateMe always sync LoginID from configured field even if not in update request
- Add phone number normalization consistency for custom LoginIDs
- Add unit tests for namespaced metadata LoginID sync
2026-03-26 12:46:33 +09:00
chan 6337d975ea fix: Admin UI에서 전송한 커스텀 필드(metadata)가 백엔드 Kratos 트레이츠에 빈 배열로 깨져서 저장되는 문제 해결 (#440) 2026-03-25 17:43:30 +09:00
chan dc4a5921c6 chore: 정상 동작이지만 노이즈를 유발하는 Kratos 세션 체크 실패(401) 로그 메시지 수정 2026-03-25 17:29:10 +09:00
chan 5d81027b34 fix: UpdateMe 핸들러 내 계층형 메타데이터 처리 및 로그인 ID 동기화 로직 보강 2026-03-25 17:14:40 +09:00
chan b3f0548c10 fix: 불필요한 역할 오버라이딩(Overriding real profile role) 로그 제거 2026-03-25 17:11:47 +09:00
chan ab9cbfc897 fix: 권한이나 소속이 변경되지 않았을 때 Keto 권한 릴레이션이 불필요하게 삭제 후 재생성되는 버그 수정 2026-03-25 17:01:55 +09:00
chan aad4ea84a1 fix: 내 정보(UpdateMe) 수정 시 커스텀 필드 로그인 ID 동기화 및 Metadata 필드 추가 (#440) 2026-03-25 16:28:19 +09:00
chan 6a4c37603d fix: Admin UI 커스텀 필드 로그인 ID 반영 문제 및 비밀번호 초기화 동작 개선 (#440)
- 사용자 정보 수정(UpdateUser) 시 메타데이터(커스텀 필드)를 명시적 loginId 값보다 우선하여 동기화하도록 로직 순서 변경
- Admin UI 사용자 상세의 비밀번호 초기화 기능이 즉시 폼에 덮어씌워지는 문제 해결을 위해, 별도의 확인 절차 후 즉각 독립적인 API 호출을 통해 재설정되도록 개선
2026-03-25 16:26:01 +09:00
chan d83646a7ef fix: 소유자 및 관리자 추가 시 중복 등록 방지 로직 추가 (#440) 2026-03-25 16:05:39 +09:00
chan c244917737 fix: adminfront utils.ts 내 generateSecurePassword 함수 추가 2026-03-25 15:46:11 +09:00
chan 7c21e500d6 fix: CreateUser 핸들러 내 누락된 LoginID 필드 추가 및 오타 수정 2026-03-25 15:34:29 +09:00
chan d10f80d41d feat: 커스텀 필드 기반 로그인 ID 연동 기능 추가 (#440)
- Kratos Identity 스키마에 로그인 전용 `id` 속성 추가
- 테넌트 Config의 `loginIdField` 설정에 따라 User의 `login_id` 및 Kratos `traits.id` 동기화 로직 구현
- Admin UI 테넌트 스키마 설정 내 '로그인 ID로 사용' 체크박스 추가
- Admin UI 사용자 생성/수정/조회 화면에 로그인 ID 관리 필드 및 컬럼 반영
- Userfront 로그인 화면 접속 시 테넌트 설정에 따라 동적 로그인 ID 라벨 적용
- 관련 다국어(ko/en) 번역 추가 및 로그인 ID 설계 문서 업데이트
2026-03-25 15:27:44 +09:00
chan 6fbf1a17b8 Merge pull request 'feature/af-ui' (#449) from feature/af-ui into dev
Reviewed-on: baron/baron-sso#449
2026-03-24 17:18:05 +09:00
chan d97feffebb Merge branch 'dev' into feature/af-ui 2026-03-24 17:15:03 +09:00
chan ab999c1e16 i18n 검증 완료 2026-03-24 17:12:24 +09:00
chan 79b7abd67b Merge branch 'dev' into feature/af-ui 2026-03-24 16:48:56 +09:00
chan 1d37bf5420 test code제외 2026-03-24 16:40:28 +09:00
chan ddef0f7f05 레거시 수정 2026-03-24 16:37:47 +09:00
chan a669d57e4a test code i18n x 2026-03-24 16:37:01 +09:00
chan 311e491683 누락된 키 추가: 테넌트 수정 화면에 새롭게 추가한 '상위 테넌트' 관련 UI 키 2종을 로컬 설정 파일에 반영했습니다 2026-03-24 16:33:01 +09:00
chan a4f283e4e6 #445 #430 #426 #427 2026-03-24 14:22:05 +09:00
chan b0e18cc724 refactor(adminfront): rename legacy companyCode to tenantSlug across frontend (#426) 2026-03-23 16:59:05 +09:00
chan b2f96b216d fix(adminfront): remove any type casting for react-router v7 flags (#427) 2026-03-23 16:32:50 +09:00
chan d608bdb5a8 refactor(adminfront): replace sonner with custom use-toast matching devfront UX policy 2026-03-23 15:32:32 +09:00
chan 2de22869c0 Merge pull request 'adminfront ui 개편' (#415) from feature/af-ui into dev
Reviewed-on: baron/baron-sso#415
2026-03-23 09:07:04 +09:00
chan d0e4f8f86a adminfront ui 개편 2026-03-20 10:58:52 +09:00
chan 409cb09143 Merge pull request 'feature/af-issue380' (#406) from feature/af-issue380 into dev
Reviewed-on: baron/baron-sso#406
2026-03-19 17:19:45 +09:00
chan a70e637bca fix: consolidate duplicated sections in i18n toml files to prevent userfront layout break 2026-03-19 17:14:28 +09:00
chan 067f9f9baf test: increase playwright poll timeout for password login failure and reset tests 2026-03-19 14:52:40 +09:00
chan a6536364ec i18n add 2026-03-19 14:43:51 +09:00
chan 896a51df3d feat: add schema check on bulk user move and support for float/datetime in custom metadata 2026-03-19 14:02:56 +09:00
chan 3e335eb9cf feat: add schema tab access control and user password generator 2026-03-19 13:40:50 +09:00
chan 046acd3ca6 style: fix table header stickiness and improve visibility for all list pages 2026-03-19 13:30:16 +09:00
chan aff21f195b style: make page headers sticky and improve table header contrast/visibility 2026-03-19 13:23:02 +09:00
chan 926c26b1ad feat: apply sticky header and inner scroll to audit logs page 2026-03-19 13:15:50 +09:00
chan f072d37362 feat: apply sticky header and inner scroll pattern to all table pages 2026-03-19 13:13:27 +09:00
chan 83991b13ca feat: implement sticky header and inner scrolling for user list page 2026-03-19 12:57:00 +09:00
chan 4d11d3e554 feat: disable remove button for self and last admin/owner in UI 2026-03-19 11:21:03 +09:00
chan a6c552236f feat: prevent self-removal and last admin/owner removal in tenant handler 2026-03-19 11:12:42 +09:00
chan 4b42249609 Merge pull request 'fix: remove shared VITE_OIDC_CLIENT_ID from staging .env so adminfront uses correct client ID' (#400) from fix/login into dev
Reviewed-on: baron/baron-sso#400
2026-03-19 09:59:49 +09:00
chan edf914f100 fix: remove shared VITE_OIDC_CLIENT_ID from staging .env so adminfront uses correct client ID 2026-03-19 09:58:44 +09:00
chan 1dc3a01257 Merge pull request 'fix: force recreate init-rp container to ensure OIDC clients are updated' (#399) from fix/login into dev
Reviewed-on: baron/baron-sso#399
2026-03-19 09:47:02 +09:00
chan f2c2a8511c fix: force recreate init-rp container to ensure OIDC clients are updated 2026-03-19 09:45:30 +09:00
chan e3e36d6e40 Merge pull request 'fix: add new staging domains and IP to redirect URIs and vite allowedHosts' (#398) from fix/login into dev
Reviewed-on: baron/baron-sso#398
2026-03-19 09:33:15 +09:00
chan caa1152268 fix: add new staging domains and IP to redirect URIs and vite allowedHosts 2026-03-19 09:31:46 +09:00
chan d95fec4651 Merge pull request 'fix: use non-distroless image for init-rp to allow shell execution' (#397) from fix/login into dev
Reviewed-on: baron/baron-sso#397
2026-03-19 09:24:50 +09:00
chan ff37ad918a fix: use alpine image and download hydra binary for init-rp to fix distroless shell issue 2026-03-19 09:22:35 +09:00
chan 57702fc672 fix: use non-distroless image for init-rp to allow shell execution 2026-03-18 17:05:19 +09:00
chan 9cee09c140 Merge pull request 'fix: load env_file in init-rp for staging compose' (#396) from fix/login into dev
Reviewed-on: baron/baron-sso#396
2026-03-18 17:02:09 +09:00
chan f8384bda9e fix: load env_file in init-rp for staging compose 2026-03-18 17:00:37 +09:00
chan 46f74ec7ad Merge pull request 'fix: add allowedHosts to Vite config for staging domains' (#395) from fix/login into dev
Reviewed-on: baron/baron-sso#395
2026-03-18 16:49:34 +09:00
chan 161c0163d3 fix: add allowedHosts to Vite config for staging domains 2026-03-18 16:48:59 +09:00
chan 09f681b8dd Merge pull request 'fix: add init-rp to staging compose to register OIDC clients' (#394) from fix/login into dev
Reviewed-on: baron/baron-sso#394
2026-03-18 16:47:20 +09:00
chan f59206e589 fix: add init-rp to staging compose to register OIDC clients 2026-03-18 16:45:19 +09:00
chan 51bbde5dd7 Merge pull request '호출 주소 변경' (#393) from fix/login into dev
Reviewed-on: baron/baron-sso#393
2026-03-18 16:17:50 +09:00
chan 406eef240d 호출 주소 변경 2026-03-18 16:16:46 +09:00
chan d3442cdc33 Merge pull request '│ 130 + VITE_OIDC_AUTHORITY=${{ vars.VITE_OIDC_AUTHORITY }} │' (#391) from fix/login into dev
Reviewed-on: baron/baron-sso#391
2026-03-18 14:49:34 +09:00
chan 6c7581d558 │ 130 + VITE_OIDC_AUTHORITY=${{ vars.VITE_OIDC_AUTHORITY }} │
│ 131 + ADMINFRONT_CALLBACK_URLS=${{ vars.ADMINFRONT_CALLBACK_URLS }}                                                                   │
│ 132 + DEVFRONT_CALLBACK_URLS=${{ vars.DEVFRONT_CALLBACK_URLS }}
추가
2026-03-18 14:49:04 +09:00
chan e535f1838b Merge pull request '로그인 설정 업데이트' (#390) from fix/login into dev
Reviewed-on: baron/baron-sso#390
2026-03-18 14:24:11 +09:00
chan 99def9a0e5 로그인 설정 업데이트 2026-03-18 13:32:09 +09:00
chan 5ffc0198a3 Merge pull request 'fix/login' (#389) from fix/login into dev
Reviewed-on: baron/baron-sso#389
2026-03-18 13:05:55 +09:00
chan 725ba375d2 Merge branch 'dev' into fix/login 2026-03-18 13:05:10 +09:00