fix(dashboard+tkuser): s1. 접두사 매칭 + 페이지 목록 동기화

- dashboardModel: department_page_permissions의 s1. 접두사 제거하여
  pages.page_key와 매칭 (두 테이블 명명규칙 차이 처리)
- permissionModel: 신규 페이지 13개 추가 (공정표, 생산회의록,
  대리입력, 입력현황, 근태관리 7종, 부서/알림 관리)
- pages 테이블: 누락 16개 페이지 INSERT (DB 직접 실행)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-30 15:04:33 +09:00
parent 65b2bbe552
commit e3b7626e07
2 changed files with 21 additions and 3 deletions

View File

@@ -84,7 +84,10 @@ const DashboardModel = {
};
}
// 부서 권한 페이지 (page_name = pages.page_key)
// 부서 권한 페이지
// department_page_permissions.page_name은 's1.work.tbm' 형식 (시스템 접두사 포함)
// pages.page_key는 'work.tbm' 형식 (접두사 없음)
// → 's1.' 접두사를 제거하여 매칭
let deptPageKeys = new Set();
if (departmentId) {
const [deptRows] = await db.execute(`
@@ -92,7 +95,10 @@ const DashboardModel = {
FROM department_page_permissions dpp
WHERE dpp.department_id = ? AND dpp.can_access = 1
`, [departmentId]);
deptRows.forEach(r => deptPageKeys.add(r.page_name));
deptRows.forEach(r => {
const key = r.page_name.startsWith('s1.') ? r.page_name.slice(3) : r.page_name;
deptPageKeys.add(key);
});
}
// 개인 권한 페이지 (page_id = pages.id)

View File

@@ -15,12 +15,22 @@ const DEFAULT_PAGES = {
's1.work.report_create': { title: '작업보고서 작성', system: 'system1', group: '작업 관리', default_access: true },
's1.work.analysis': { title: '작업 분석', system: 'system1', group: '작업 관리', default_access: false },
's1.work.nonconformity': { title: '부적합 현황', system: 'system1', group: '작업 관리', default_access: true },
's1.work.schedule': { title: '공정표', system: 'system1', group: '작업 관리', default_access: false },
's1.work.meetings': { title: '생산회의록', system: 'system1', group: '작업 관리', default_access: false },
's1.work.daily_status': { title: '입력 현황', system: 'system1', group: '작업 관리', default_access: false },
's1.work.proxy_input': { title: '대리입력', system: 'system1', group: '작업 관리', default_access: false },
// 공장 관리
's1.factory.repair_management':{ title: '시설설비 관리', system: 'system1', group: '공장 관리', default_access: false },
's1.inspection.daily_patrol': { title: '일일순회점검', system: 'system1', group: '공장 관리', default_access: false },
's1.inspection.checkin': { title: '출근 체크', system: 'system1', group: '공장 관리', default_access: true },
's1.inspection.work_status': { title: '근무 현황', system: 'system1', group: '공장 관리', default_access: false },
's1.attendance.monthly': { title: '월간 근태', system: 'system1', group: '공장 관리', default_access: true },
's1.attendance.monthly': { title: '월간 근태', system: 'system1', group: '근태 관리', default_access: true },
's1.attendance.my_vacation_info': { title: '내 연차 정보', system: 'system1', group: '근태 관리', default_access: true },
's1.attendance.vacation_request': { title: '휴가 신청', system: 'system1', group: '근태 관리', default_access: true },
's1.attendance.vacation_management': { title: '휴가 관리', system: 'system1', group: '근태 관리', default_access: false },
's1.attendance.vacation_allocation': { title: '휴가 발생 입력', system: 'system1', group: '근태 관리', default_access: false },
's1.attendance.annual_overview': { title: '연간 휴가 현황', system: 'system1', group: '근태 관리', default_access: false },
's1.attendance.monthly_comparison': { title: '월간 비교·확인', system: 'system1', group: '근태 관리', default_access: false },
// 시스템 관리
's1.admin.workers': { title: '작업자 관리', system: 'system1', group: '시스템 관리', default_access: false },
's1.admin.projects': { title: '프로젝트 관리', system: 'system1', group: '시스템 관리', default_access: false },
@@ -29,6 +39,8 @@ const DEFAULT_PAGES = {
's1.admin.equipments': { title: '설비 관리', system: 'system1', group: '시스템 관리', default_access: false },
's1.admin.issue_categories': { title: '신고 카테고리 관리', system: 'system1', group: '시스템 관리', default_access: false },
's1.admin.attendance_report': { title: '출퇴근-보고서 대조', system: 'system1', group: '시스템 관리', default_access: false },
's1.admin.departments': { title: '부서 관리', system: 'system1', group: '시스템 관리', default_access: false },
's1.admin.notifications': { title: '알림 관리', system: 'system1', group: '시스템 관리', default_access: false },
// 관리
'factory_proxy_input': { title: '대리입력', system: 'system1', group: '관리', default_access: false },
'factory_daily_status': { title: '일별 현황', system: 'system1', group: '관리', default_access: false },