From d3cef659ce0952de5b16e93622b040f0d2d20e01 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Tue, 31 Mar 2026 07:17:30 +0900 Subject: [PATCH] =?UTF-8?q?fix(tkfb):=20is=5Fadmin=5Fonly=20=EB=A0=88?= =?UTF-8?q?=EA=B1=B0=EC=8B=9C=20=ED=95=84=ED=84=B0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 과거 권한 시스템 잔재인 is_admin_only 필터를 모든 런타임 코드에서 제거. 현재 체계: admin=모든 페이지, 일반 사용자=권한 부여된 페이지만. DB에서도 is_admin_only = 0으로 통일 (22건 갱신). Co-Authored-By: Claude Opus 4.6 (1M context) --- system1-factory/api/models/dashboardModel.js | 8 ++------ system1-factory/api/models/pageAccessModel.js | 2 -- system1-factory/api/routes/pageAccessRoutes.js | 5 +---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/system1-factory/api/models/dashboardModel.js b/system1-factory/api/models/dashboardModel.js index 696a1c5..039ed2e 100644 --- a/system1-factory/api/models/dashboardModel.js +++ b/system1-factory/api/models/dashboardModel.js @@ -75,12 +75,10 @@ const DashboardModel = { `); if (isAdmin) { - const adminPages = allPages.filter(p => p.is_admin_only); - const normalPages = allPages.filter(p => !p.is_admin_only); return { - department_pages: normalPages.map(formatPage), + department_pages: allPages.map(formatPage), personal_pages: [], - admin_pages: adminPages.map(formatPage) + admin_pages: [] }; } @@ -114,8 +112,6 @@ const DashboardModel = { const personalPages = []; for (const page of allPages) { - if (page.is_admin_only) continue; - if (deptPageKeys.has(page.page_key)) { departmentPages.push(formatPage(page)); } else if (personalPageIds.has(page.id)) { diff --git a/system1-factory/api/models/pageAccessModel.js b/system1-factory/api/models/pageAccessModel.js index b1632ee..c891185 100644 --- a/system1-factory/api/models/pageAccessModel.js +++ b/system1-factory/api/models/pageAccessModel.js @@ -19,7 +19,6 @@ const PageAccessModel = { FROM pages p LEFT JOIN user_page_access upa ON p.id = upa.page_id AND upa.user_id = ? LEFT JOIN users granter ON upa.granted_by = granter.user_id - WHERE p.is_admin_only = 0 ORDER BY p.category, p.display_order `; @@ -39,7 +38,6 @@ const PageAccessModel = { is_admin_only, display_order FROM pages - WHERE is_admin_only = 0 ORDER BY category, display_order `; diff --git a/system1-factory/api/routes/pageAccessRoutes.js b/system1-factory/api/routes/pageAccessRoutes.js index 40eb0ef..10b8847 100644 --- a/system1-factory/api/routes/pageAccessRoutes.js +++ b/system1-factory/api/routes/pageAccessRoutes.js @@ -95,9 +95,6 @@ router.get('/users/:userId/page-access', requireAuth, async (req, res) => { ON dpp.department_id = ? AND (dpp.page_name = CONCAT('s1.', p.page_key) OR dpp.page_name = p.page_key) LEFT JOIN users u2 ON upa.granted_by = u2.user_id - WHERE p.is_admin_only = 0 - OR upa.can_access = 1 - OR dpp.can_access = 1 ORDER BY p.display_order, p.page_name `, [userId, departmentId]); @@ -232,7 +229,7 @@ router.get('/page-access/summary', requireAuth, async (req, res) => { u.name, r.name as role_name, COUNT(DISTINCT upa.page_id) as accessible_pages_count, - (SELECT COUNT(*) FROM pages WHERE is_admin_only = 0) as total_pages_count + (SELECT COUNT(*) FROM pages) as total_pages_count FROM users u LEFT JOIN roles r ON u.role_id = r.id LEFT JOIN user_page_access upa ON u.user_id = upa.user_id AND upa.can_access = 1