최고 관리자는 좌측에 공통 메뉴만 보이도록 수정

This commit is contained in:
kjs 2025-10-27 17:14:28 +09:00
parent 02df4355e2
commit 15776e76f5
1 changed files with 25 additions and 35 deletions

View File

@ -26,26 +26,26 @@ export class AdminService {
let queryParams: any[] = [userLang];
let paramIndex = 2;
// SUPER_ADMIN과 COMPANY_ADMIN 구분
if (userType === "SUPER_ADMIN" && userCompanyCode === "*") {
// SUPER_ADMIN: 모든 메뉴 표시
logger.info("✅ SUPER_ADMIN 모드: 모든 관리자 메뉴 표시");
companyFilter = "";
} else if (userType === "COMPANY_ADMIN") {
// COMPANY_ADMIN: 자기 회사 메뉴 + 공통 메뉴
companyFilter = `AND (MENU.COMPANY_CODE = $${paramIndex} OR MENU.COMPANY_CODE IS NULL)`;
queryParams.push(userCompanyCode);
paramIndex++;
logger.info(
`✅ COMPANY_ADMIN 모드: 회사 ${userCompanyCode} 관리자 메뉴 + 공통 메뉴 표시`
);
// SUPER_ADMIN
if (menuType === undefined) {
// 메뉴 관리 화면: 모든 메뉴
logger.info("✅ 메뉴 관리 화면 (SUPER_ADMIN): 모든 메뉴 표시");
companyFilter = "";
} else {
// 좌측 사이드바: 공통 메뉴만 (company_code = '*')
logger.info("✅ 좌측 사이드바 (SUPER_ADMIN): 공통 메뉴만 표시");
companyFilter = `AND MENU.COMPANY_CODE = '*'`;
}
} else {
// 일반 사용자: 자기 회사 메뉴만
companyFilter = `AND (MENU.COMPANY_CODE = $${paramIndex} OR MENU.COMPANY_CODE IS NULL)`;
// COMPANY_ADMIN: 좌측 사이드바, 메뉴 관리 화면 모두 자기 회사만
logger.info(
`${menuType === undefined ? "메뉴 관리 화면" : "좌측 사이드바"} (COMPANY_ADMIN): 회사 ${userCompanyCode} 메뉴만 표시`
);
companyFilter = `AND MENU.COMPANY_CODE = $${paramIndex}`;
queryParams.push(userCompanyCode);
paramIndex++;
logger.info(
`✅ 일반 사용자 모드: 회사 ${userCompanyCode} 관리자 메뉴 + 공통 메뉴 표시`
);
}
// 기존 Java의 selectAdminMenuList 쿼리를 Raw Query로 포팅
@ -256,33 +256,23 @@ export class AdminService {
const { userId, userCompanyCode, userType, userLang = "ko" } = paramMap;
// SUPER_ADMIN (company_code='*'): 모든 메뉴
// COMPANY_ADMIN: 자기 회사 메뉴 + 공통 메뉴 (company_code IS NULL)
// 일반 사용자: 권한이 있는 메뉴만
// 좌측 사이드바: SUPER_ADMIN은 공통 메뉴, COMPANY_ADMIN은 자기 회사 메뉴
let companyFilter = "";
let queryParams: any[] = [userLang];
let paramIndex = 2;
if (userType === "SUPER_ADMIN" && userCompanyCode === "*") {
// SUPER_ADMIN: 모든 메뉴 표시
logger.info("✅ SUPER_ADMIN 모드: 모든 메뉴 표시");
companyFilter = "";
} else if (userType === "COMPANY_ADMIN") {
// COMPANY_ADMIN: 자기 회사 메뉴 + 공통 메뉴
companyFilter = `AND (MENU.COMPANY_CODE = $${paramIndex} OR MENU.COMPANY_CODE IS NULL)`;
queryParams.push(userCompanyCode);
paramIndex++;
logger.info(
`✅ COMPANY_ADMIN 모드: 회사 ${userCompanyCode} 메뉴 + 공통 메뉴 표시`
);
// SUPER_ADMIN: 공통 메뉴만 (company_code = '*')
logger.info("✅ 좌측 사이드바 (SUPER_ADMIN): 공통 메뉴만 표시");
companyFilter = `AND MENU.COMPANY_CODE = '*'`;
} else {
// 일반 사용자: 자기 회사 메뉴만
companyFilter = `AND (MENU.COMPANY_CODE = $${paramIndex} OR MENU.COMPANY_CODE IS NULL)`;
// COMPANY_ADMIN: 자기 회사 메뉴만
logger.info(
`✅ 좌측 사이드바 (COMPANY_ADMIN): 회사 ${userCompanyCode} 메뉴만 표시`
);
companyFilter = `AND MENU.COMPANY_CODE = $${paramIndex}`;
queryParams.push(userCompanyCode);
paramIndex++;
logger.info(
`✅ 일반 사용자 모드: 회사 ${userCompanyCode} 메뉴 + 공통 메뉴 표시`
);
}
// 기존 Java의 selectUserMenuList 쿼리를 Raw Query로 포팅 + 회사별 필터링