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 };
|