feat(tkuser): 통합 관리 탭별 권한 시스템 추가

- DEFAULT_PAGES에 tkuser 시스템 10개 페이지 권한 정의 추가
- 권한 관리 UI에 tkuser 섹션 추가 (개인/부서 권한 모두)
- 비admin 사용자 로그인 시 effective-permissions 기반 탭 표시 제어
- switchTab()에 권한 guard 추가하여 비허용 탭 접근 차단

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-13 10:20:21 +09:00
parent 976e55d672
commit 3b0ac615bf
5 changed files with 121 additions and 10 deletions

View File

@@ -20,10 +20,6 @@ const DEFAULT_PAGES = {
'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.safety.visit_request': { title: '출입 신청', system: 'system1', group: '안전 관리', default_access: true },
's1.safety.management': { title: '안전 관리', system: 'system1', group: '안전 관리', default_access: false },
's1.safety.checklist_manage': { title: '체크리스트 관리', system: 'system1', group: '안전 관리', default_access: false },
// 근태 관리
's1.attendance.my_vacation_info': { title: '내 연차 정보', system: 'system1', group: '근태 관리', default_access: true },
's1.attendance.monthly': { title: '월간 근태', system: 'system1', group: '근태 관리', default_access: true },
@@ -63,8 +59,22 @@ const DEFAULT_PAGES = {
'purchasing_partner_checkin': { title: '협력업체 체크인', system: 'tkpurchase', group: '협력업체', default_access: false },
// ===== tksafety - 안전 관리 =====
'safety_visit': { title: '방문 관리', system: 'tksafety', group: '안전 관리', default_access: false },
'safety_education': { title: '안전교육 관리', system: 'tksafety', group: '안전 관리', default_access: false },
'safety_visit_request': { title: '출입 신청', system: 'tksafety', group: '안전 관리', default_access: true },
'safety_visit_management': { title: '출입 관리', system: 'tksafety', group: '안전 관리', default_access: false },
'safety_training': { title: '안전교육 실시', system: 'tksafety', group: '안전 관리', default_access: false },
'safety_checklist': { title: '체크리스트 관리', system: 'tksafety', group: '안전 관리', default_access: false },
// ===== tkuser - 통합 관리 =====
'tkuser.users': { title: '사용자 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.projects': { title: '프로젝트 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.workplaces': { title: '작업장 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.workers': { title: '작업자 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.departments': { title: '부서 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.issue_types': { title: '이슈 유형 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.tasks': { title: '작업 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.vacations': { title: '휴가 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.partners': { title: '협력업체 관리', system: 'tkuser', group: '통합 관리', default_access: false },
'tkuser.notification_recipients': { title: '알림 수신자 관리', system: 'tkuser', group: '통합 관리', default_access: false },
};
/**