진행중
This commit is contained in:
@@ -20,9 +20,9 @@ interface CompanySwitcherProps {
|
||||
}
|
||||
|
||||
/**
|
||||
* WACE 관리자 전용: 회사 선택 및 전환 컴포넌트
|
||||
* Invyone 관리자 전용: 회사 선택 및 전환 컴포넌트
|
||||
*
|
||||
* - WACE 관리자(company_code = "*", userType = "SUPER_ADMIN")만 표시
|
||||
* - Invyone 관리자(company_code = "*", userType = "SUPER_ADMIN")만 표시
|
||||
* - 회사 선택 시 해당 회사로 전환하여 시스템 사용
|
||||
* - JWT 토큰 재발급으로 company_code 변경
|
||||
*/
|
||||
@@ -33,15 +33,15 @@ export function CompanySwitcher({ onClose, isOpen = false }: CompanySwitcherProp
|
||||
const [searchText, setSearchText] = useState("");
|
||||
const [loading, setLoading] = useState(false);
|
||||
|
||||
// WACE 관리자 권한 체크 (user_type만 확인)
|
||||
const isWaceAdmin = user?.user_type === "SUPER_ADMIN";
|
||||
// Invyone 관리자 권한 체크 (user_type만 확인)
|
||||
const isInvyoneAdmin = user?.user_type === "SUPER_ADMIN";
|
||||
|
||||
// 현재 선택된 회사명 표시
|
||||
const currentCompanyName = React.useMemo(() => {
|
||||
if (!user?.company_code) return "로딩 중...";
|
||||
|
||||
if (user.company_code === "*") {
|
||||
return "WACE (최고 관리자)";
|
||||
return "Invyone (최고 관리자)";
|
||||
}
|
||||
|
||||
// companies 배열에서 현재 회사 찾기
|
||||
@@ -51,10 +51,10 @@ export function CompanySwitcher({ onClose, isOpen = false }: CompanySwitcherProp
|
||||
|
||||
// 회사 목록 조회
|
||||
useEffect(() => {
|
||||
if (isWaceAdmin && isOpen) {
|
||||
if (isInvyoneAdmin && isOpen) {
|
||||
fetchCompanies();
|
||||
}
|
||||
}, [isWaceAdmin, isOpen]);
|
||||
}, [isInvyoneAdmin, isOpen]);
|
||||
|
||||
// 검색 필터링
|
||||
useEffect(() => {
|
||||
@@ -75,24 +75,24 @@ export function CompanySwitcher({ onClose, isOpen = false }: CompanySwitcherProp
|
||||
const response = await apiClient.get("/admin/companies/db");
|
||||
|
||||
if (response.data.success) {
|
||||
// 활성 상태의 회사만 필터링 + company_code="*" 제외 (WACE는 별도 추가)
|
||||
// 활성 상태의 회사만 필터링 + company_code="*" 제외 (Invyone는 별도 추가)
|
||||
const activeCompanies = response.data.data
|
||||
.filter((c: Company) => c.company_code !== "*") // DB의 "*" 제외
|
||||
.filter((c: Company) => c.status === "active" || !c.status)
|
||||
.sort((a: Company, b: Company) => a.company_name.localeCompare(b.company_name));
|
||||
|
||||
// WACE 복귀 옵션 추가
|
||||
const companiesWithWace: Company[] = [
|
||||
// Invyone 복귀 옵션 추가
|
||||
const companiesWithInvyone: Company[] = [
|
||||
{
|
||||
company_code: "*",
|
||||
company_name: "WACE (최고 관리자)",
|
||||
company_name: "Invyone (최고 관리자)",
|
||||
status: "active",
|
||||
},
|
||||
...activeCompanies,
|
||||
];
|
||||
|
||||
setCompanies(companiesWithWace);
|
||||
setFilteredCompanies(companiesWithWace);
|
||||
setCompanies(companiesWithInvyone);
|
||||
setFilteredCompanies(companiesWithInvyone);
|
||||
}
|
||||
} catch (error) {
|
||||
logger.error("회사 목록 조회 실패", error);
|
||||
@@ -124,8 +124,8 @@ export function CompanySwitcher({ onClose, isOpen = false }: CompanySwitcherProp
|
||||
}
|
||||
};
|
||||
|
||||
// WACE 관리자가 아니면 렌더링하지 않음
|
||||
if (!isWaceAdmin) {
|
||||
// Invyone 관리자가 아니면 렌더링하지 않음
|
||||
if (!isInvyoneAdmin) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user