Files
bowlingManager/backend/middleware/requireFeature.js
T
2025-06-15 10:20:39 +09:00

25 lines
780 B
JavaScript

const { clubHasFeature } = require('../utils/featureAccess');
// featureCode: 예) 'event_management', 'team_create', 'statistics' 등
function requireFeature(featureCode) {
return async function(req, res, next) {
try {
const clubId = req.session.clubId || req.clubId || req.body.clubId || req.params.clubId;
// console.log('backendClubId:', clubId);
if (!clubId) {
return res.status(400).json({ error: '클럽 정보가 필요합니다.' });
}
const hasFeature = await clubHasFeature(clubId, featureCode);
if (!hasFeature) {
return res.status(403).json({ error: '해당 기능을 사용할 수 없습니다.' });
}
next();
} catch (err) {
next(err);
}
};
}
module.exports = requireFeature;