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:
@@ -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)
|
||||
|
||||
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user