smart_ims/server/middleware/authMiddleware.js
choibk 8b2589b6fa feat: 플랫폼 보안 강화, 권한 계층 시스템 도입 및 버전 관리 통합 (v0.2.5)
- 최고관리자(Supervisor) 전용 2중 보안 잠금 시스템 및 인증 UI 적용
- 데이터베이스 인프라 및 암호화 마스터 키 자가 관리 기능 구축
- 권한 계층(Supervisor > Admin > User) 기반의 메뉴 노출 및 접근 제어 로직 강화
- 시스템 버전 정보 페이지 신규 추가 및 패키지 버전 자동 연동 (v0.2.5)
- 사용자 관리 UI 디자인 개선 및 폰트/스타일 일원화
2026-01-24 17:17:33 +09:00

39 lines
1012 B
JavaScript

const ROLES = {
SUPERVISOR: 'supervisor',
ADMIN: 'admin',
USER: 'user'
};
const HIERARCHY = {
[ROLES.SUPERVISOR]: 100,
[ROLES.ADMIN]: 50,
[ROLES.USER]: 10
};
const isAuthenticated = (req, res, next) => {
if (req.session && req.session.user) {
return next();
}
return res.status(401).json({ success: false, message: 'Unauthorized' });
};
const hasRole = (requiredRole) => {
return (req, res, next) => {
if (!req.session || !req.session.user) {
return res.status(401).json({ success: false, message: 'Unauthorized' });
}
const userRole = req.session.user.role;
const userLevel = HIERARCHY[userRole] || 0;
const requiredLevel = HIERARCHY[requiredRole] || 999;
if (userLevel >= requiredLevel) {
return next();
}
return res.status(403).json({ success: false, message: 'Forbidden: Insufficient permissions' });
};
};
module.exports = { isAuthenticated, hasRole, ROLES };