All files / services/config-service/src/middleware orgMember.js

75% Statements 21/28
33.33% Branches 2/6
100% Functions 1/1
75% Lines 21/28

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 291x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x     1x 1x 1x     1x 1x 1x 1x       1x 1x 1x  
const Membership = require('../models/Membership');
 
/**
 * Vérifie que l'utilisateur authentifié est membre de l'organisation.
 * À utiliser APRÈS authenticateToken (req.user doit être défini).
 * L'organizationId est lu dans req.params.organizationId (ou req.params.id).
 */
async function requireOrgMember(req, res, next) {
  try {
    const organizationId = req.params.organizationId || req.params.id;
    if (!organizationId) {
      return res.status(400).json({ success: false, message: 'organizationId required' });
    }
 
    const membership = await Membership.findOne({ userId: req.user._id, organizationId });
    if (!membership) {
      return res.status(403).json({ success: false, message: 'Access denied to this organization' });
    }
 
    req.membershipRole = membership.role;
    next();
  } catch (error) {
    console.error('[requireOrgMember] Error:', error.message);
    res.status(500).json({ success: false, message: 'Error checking organization membership' });
  }
}
 
module.exports = { requireOrgMember };