All files / src/helpers serverOwnership.js

0% Statements 0/6
0% Branches 0/4
0% Functions 0/1
0% Lines 0/6

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 29 30 31 32 33 34 35                                                                     
/**
 * Verification d'appartenance d'un serveur a un utilisateur.
 *
 * Pattern repete dans alerts, webhooks, servers, logs, quickActions, sshKeys, etc.
 * Ce helper centralise la requete de verification.
 *
 * @module helpers/serverOwnership
 */
 
const { pool: db } = require('../db');
 
/**
 * Verifie que le serveur appartient a l'utilisateur,
 * ou que l'utilisateur y a acces via un groupe.
 *
 * @param {string|number} serverId — ID du serveur
 * @param {string|number} userId — ID de l'utilisateur
 * @param {object} [access] — req.access (contexte groupe, optionnel)
 * @returns {Promise<boolean>} true si l'utilisateur a acces au serveur
 */
async function ownsServer(serverId, userId, access) {
  // En mode groupe, verifier que le serveur est dans les serverIds du groupe
  if (access && access.serverIds) {
    return access.serverIds.includes(serverId);
  }
  // Mode global — verification classique de propriete
  const { rows } = await db.query(
    'SELECT id FROM servers WHERE id = $1 AND user_id = $2',
    [serverId, userId],
  );
  return rows.length > 0;
}
 
module.exports = { ownsServer };