From 544fa5a9b8ec13d0f5c02b77cc861a20917f297a Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 10 Nov 2025 07:12:53 +0000 Subject: (임수민) 시스템 유저 등록 활성화 상태 추가 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/admin-users/service.ts | 1 + lib/admin-users/table/add-ausers-dialog.tsx | 32 ++++++++++++++++++++++++++--- lib/admin-users/validations.ts | 3 +++ 3 files changed, 33 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/admin-users/service.ts b/lib/admin-users/service.ts index 70c04aa1..6ca2cef3 100644 --- a/lib/admin-users/service.ts +++ b/lib/admin-users/service.ts @@ -266,6 +266,7 @@ export async function createAdminUser(input: CreateUserSchema & { language?: str phone: input.phone?.trim(), // 전화번호 앞뒤 공백 제거 domain: input.domain, companyId: input.companyId ?? null, + isActive: input.isActive ?? true, // 활성화 상태 (기본값 true) // 기타 필요한 필드 추가 }); diff --git a/lib/admin-users/table/add-ausers-dialog.tsx b/lib/admin-users/table/add-ausers-dialog.tsx index 5c6e600a..6c6a1e99 100644 --- a/lib/admin-users/table/add-ausers-dialog.tsx +++ b/lib/admin-users/table/add-ausers-dialog.tsx @@ -50,6 +50,7 @@ import { toast } from "sonner" import { Vendor } from "@/db/schema/vendors" import { FormDescription } from "@/components/ui/form" import { ScrollArea } from "@/components/ui/scroll-area" +import { Switch } from "@/components/ui/switch" // i18n-iso-countries import import i18nIsoCountries from "i18n-iso-countries" @@ -126,7 +127,7 @@ export function AddUserDialog() { }, []) // react-hook-form 세팅 - const form = useForm({ + const form = useForm({ resolver: zodResolver(createUserSchema), defaultValues: { name: "", @@ -136,7 +137,9 @@ export function AddUserDialog() { language:'en', // roles는 array, 여기서는 단일 선택 시 [role]로 담음 roles: ["Vendor Admin"], - domain:'partners' + domain:'partners', + isActive: true, // 기본값 활성화 + country: undefined, // 국가 필드 // domain, etc. 필요하다면 추가 }, }) @@ -177,7 +180,7 @@ export function AddUserDialog() { - + Create New User @@ -450,6 +453,29 @@ export function AddUserDialog() { )} /> + {/* 활성화 상태 */} + ( + +
+ Account Status + + 활성화된 계정만 로그인할 수 있습니다. + +
+ + + + +
+ )} + /> + diff --git a/lib/admin-users/validations.ts b/lib/admin-users/validations.ts index 86ff8d20..28911aa8 100644 --- a/lib/admin-users/validations.ts +++ b/lib/admin-users/validations.ts @@ -81,6 +81,8 @@ export const createUserSchema = z.object({ message: "올바른 국제 전화번호 형식이 아닙니다. +로 시작하는 3-20자리 번호를 입력해주세요. (예: +82-10-1234-5678)" } ), // 전화번호 필드 추가 + isActive: z.boolean().default(true), // 활성화 상태 필드 추가 + country: z.string().optional(), // 국가 필드 (기존 코드 호환성) }); @@ -105,6 +107,7 @@ export const updateUserSchema = z.object({ message: "올바른 국제 전화번호 형식이 아닙니다. +로 시작하는 3-20자리 번호를 입력해주세요. (예: +82-10-1234-5678)" } ), // 전화번호 필드 추가 + isActive: z.boolean().optional(), // 활성화 상태 필드 추가 }); export type GetUsersSchema = Awaited> -- cgit v1.2.3