fix: 캘린더 모달 중복 카드 문제 및 삭제 권한 개선
- monthly_worker_status 조회 시 GROUP BY로 중복 데이터 합산 - 작업보고서 삭제 권한을 그룹장 이상으로 제한 (admin, system, group_leader) - 중복 데이터 정리를 위한 마이그레이션 SQL 추가 (009_fix_duplicate_monthly_status.sql) - synology_deployment 버전에도 동일 수정 적용
This commit is contained in:
33
synology_deployment/api/middlewares/accessMiddleware.js
Normal file
33
synology_deployment/api/middlewares/accessMiddleware.js
Normal file
@@ -0,0 +1,33 @@
|
||||
// middlewares/accessMiddleware.js
|
||||
|
||||
// 권한 레벨 정의
|
||||
const ACCESS_LEVELS = {
|
||||
worker: 1,
|
||||
group_leader: 2,
|
||||
support_team: 3,
|
||||
admin: 4,
|
||||
system: 5
|
||||
};
|
||||
|
||||
const requireAccess = (requiredLevel) => {
|
||||
return (req, res, next) => {
|
||||
if (!req.user) {
|
||||
return res.status(401).json({ error: '인증이 필요합니다.' });
|
||||
}
|
||||
|
||||
const userLevel = ACCESS_LEVELS[req.user.access_level] || 0;
|
||||
const required = ACCESS_LEVELS[requiredLevel] || 999;
|
||||
|
||||
if (userLevel < required) {
|
||||
return res.status(403).json({
|
||||
error: '접근 권한이 없습니다.',
|
||||
required: requiredLevel,
|
||||
current: req.user.access_level
|
||||
});
|
||||
}
|
||||
|
||||
next();
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = { requireAccess, ACCESS_LEVELS };
|
||||
Reference in New Issue
Block a user