feat(tkuser): 권한 관리 페이지 최신화 — tksupport 추가, tksafety 보강, S1 휴가 정리

- tksupport 행정지원 6페이지 권한 정의 추가 (indigo 테마)
- tksupport 라우트에 requirePage() 미들웨어 적용
- tksafety 권한 2→8개 확장 (출입관리 4 + 교육/점검 4)
- System1 안전관리 그룹 제거 (s1.safety.* 고아키)
- System1 근태관리 휴가 5항목 제거 (tksupport로 통합)
- 월간근태를 공장관리 그룹으로 이동
- System3 업무, tkuser 연차설정 백엔드 키 동기화

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-25 14:06:06 +09:00
parent d46e509e42
commit 05c9f22bdf
5 changed files with 69 additions and 45 deletions

View File

@@ -1,13 +1,13 @@
const express = require('express');
const router = express.Router();
const { requireAuth, requireSupportTeam } = require('../middleware/auth');
const { requireAuth, requireSupportTeam, requirePage } = require('../middleware/auth');
const ctrl = require('../controllers/companyHolidayController');
router.use(requireAuth);
router.get('/holidays', ctrl.getHolidays);
router.post('/holidays', requireSupportTeam, ctrl.createHoliday);
router.delete('/holidays/:id', requireSupportTeam, ctrl.deleteHoliday);
router.post('/holidays/:id/apply-deduction', requireSupportTeam, ctrl.applyDeduction);
router.post('/holidays', requireSupportTeam, requirePage('support_company_holidays'), ctrl.createHoliday);
router.delete('/holidays/:id', requireSupportTeam, requirePage('support_company_holidays'), ctrl.deleteHoliday);
router.post('/holidays/:id/apply-deduction', requireSupportTeam, requirePage('support_company_holidays'), ctrl.applyDeduction);
module.exports = router;

View File

@@ -1,12 +1,12 @@
const express = require('express');
const router = express.Router();
const { requireAuth, requireSupportTeam } = require('../middleware/auth');
const { requireAuth, requireSupportTeam, requirePage } = require('../middleware/auth');
const ctrl = require('../controllers/vacationDashboardController');
router.use(requireAuth);
router.get('/', requireSupportTeam, ctrl.getDashboard);
router.get('/yearly-overview', requireSupportTeam, ctrl.getYearlyOverview);
router.get('/monthly-detail', requireSupportTeam, ctrl.getMonthlyDetail);
router.get('/', requireSupportTeam, requirePage('support_vacation_dashboard'), ctrl.getDashboard);
router.get('/yearly-overview', requireSupportTeam, requirePage('support_vacation_dashboard'), ctrl.getYearlyOverview);
router.get('/monthly-detail', requireSupportTeam, requirePage('support_vacation_dashboard'), ctrl.getMonthlyDetail);
module.exports = router;

View File

@@ -1,6 +1,6 @@
const express = require('express');
const router = express.Router();
const { requireAuth, requireAdmin } = require('../middleware/auth');
const { requireAuth, requireAdmin, requirePage } = require('../middleware/auth');
const ctrl = require('../controllers/vacationController');
router.use(requireAuth);
@@ -9,16 +9,16 @@ router.use(requireAuth);
router.get('/types', ctrl.getVacationTypes);
// 휴가 신청
router.post('/requests', ctrl.createRequest);
router.post('/requests', requirePage('support_vacation_request'), ctrl.createRequest);
router.get('/requests', ctrl.getRequests);
router.get('/requests/:id', ctrl.getRequestById);
router.put('/requests/:id', ctrl.updateRequest);
router.patch('/requests/:id/cancel', ctrl.cancelRequest);
router.put('/requests/:id', requirePage('support_vacation_request'), ctrl.updateRequest);
router.patch('/requests/:id/cancel', requirePage('support_vacation_request'), ctrl.cancelRequest);
// 승인 (관리자)
router.get('/pending', requireAdmin, ctrl.getPending);
router.patch('/requests/:id/approve', requireAdmin, ctrl.approveRequest);
router.patch('/requests/:id/reject', requireAdmin, ctrl.rejectRequest);
router.patch('/requests/:id/approve', requireAdmin, requirePage('support_vacation_approval'), ctrl.approveRequest);
router.patch('/requests/:id/reject', requireAdmin, requirePage('support_vacation_approval'), ctrl.rejectRequest);
// 내 휴가 현황
router.get('/my-status', ctrl.getMyStatus);