fix(permissions): 개인 권한 테이블 불일치 수정
tkuser는 user_page_permissions에 저장하지만 네비/대시보드는 user_page_access에서 읽던 문제. user_page_permissions 기반으로 통일. - pageAccessRoutes.js: user_page_access → user_page_permissions JOIN - dashboardModel.js: 개인 권한 쿼리 page_name 기반으로 변경 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -101,13 +101,17 @@ const DashboardModel = {
|
||||
});
|
||||
}
|
||||
|
||||
// 개인 권한 페이지 (page_id = pages.id)
|
||||
// 개인 권한 페이지 (user_page_permissions.page_name 기반)
|
||||
const [personalRows] = await db.execute(`
|
||||
SELECT upa.page_id
|
||||
FROM user_page_access upa
|
||||
WHERE upa.user_id = ? AND upa.can_access = 1
|
||||
SELECT upp.page_name
|
||||
FROM user_page_permissions upp
|
||||
WHERE upp.user_id = ? AND upp.can_access = 1
|
||||
`, [userId]);
|
||||
const personalPageIds = new Set(personalRows.map(r => r.page_id));
|
||||
const personalPageKeys = new Set();
|
||||
personalRows.forEach(r => {
|
||||
const key = r.page_name.startsWith('s1.') ? r.page_name.slice(3) : r.page_name;
|
||||
personalPageKeys.add(key);
|
||||
});
|
||||
|
||||
// 분류 (부서 우선, 중복 없음 — 권한 있는 페이지만)
|
||||
const departmentPages = [];
|
||||
@@ -116,7 +120,7 @@ const DashboardModel = {
|
||||
for (const page of allPages) {
|
||||
if (deptPageKeys.has(page.page_key)) {
|
||||
departmentPages.push(formatPage(page));
|
||||
} else if (personalPageIds.has(page.id)) {
|
||||
} else if (personalPageKeys.has(page.page_key)) {
|
||||
personalPages.push(formatPage(page));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user