fix(dashboard): department_page_permissions 스키마 맞춤
page_id(없음) → page_name으로 조회, pages.page_key로 매칭. 실제 DB 구조와 shared/middleware/pagePermission.js 패턴 일치. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -84,18 +84,18 @@ const DashboardModel = {
|
||||
};
|
||||
}
|
||||
|
||||
// 부서 권한 페이지
|
||||
let deptPageIds = new Set();
|
||||
// 부서 권한 페이지 (page_name = pages.page_key)
|
||||
let deptPageKeys = new Set();
|
||||
if (departmentId) {
|
||||
const [deptRows] = await db.execute(`
|
||||
SELECT dpp.page_id
|
||||
SELECT dpp.page_name
|
||||
FROM department_page_permissions dpp
|
||||
WHERE dpp.department_id = ? AND dpp.can_access = 1
|
||||
`, [departmentId]);
|
||||
deptRows.forEach(r => deptPageIds.add(r.page_id));
|
||||
deptRows.forEach(r => deptPageKeys.add(r.page_name));
|
||||
}
|
||||
|
||||
// 개인 권한 페이지
|
||||
// 개인 권한 페이지 (page_id = pages.id)
|
||||
const [personalRows] = await db.execute(`
|
||||
SELECT upa.page_id
|
||||
FROM user_page_access upa
|
||||
@@ -106,14 +106,14 @@ const DashboardModel = {
|
||||
// 기본 접근 페이지
|
||||
const defaultPages = allPages.filter(p => !p.is_admin_only);
|
||||
|
||||
// 분류
|
||||
// 분류 (부서 우선, 중복 없음)
|
||||
const departmentPages = [];
|
||||
const personalPages = [];
|
||||
|
||||
for (const page of allPages) {
|
||||
if (page.is_admin_only) continue;
|
||||
|
||||
if (deptPageIds.has(page.id)) {
|
||||
if (deptPageKeys.has(page.page_key)) {
|
||||
departmentPages.push(formatPage(page));
|
||||
} else if (personalPageIds.has(page.id)) {
|
||||
personalPages.push(formatPage(page));
|
||||
|
||||
Reference in New Issue
Block a user