24 lines
703 B
JavaScript
24 lines
703 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.clubId || (req.user && req.user.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;
|