From 8561e3f8bca7bbb9caee713c90dac41467318662 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Thu, 4 Jul 2024 20:49:57 +0200 Subject: [PATCH] =?UTF-8?q?Securit=C3=A9:=20limiter=20les=20cleanupContene?= =?UTF-8?q?urs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dans certains cas mal identifiés, on pouvait avoir un problème de droits sur l'acteur, quand plusieurs joueurs accédaient en même temps à l'équipement porté par une mule, par exemple --- module/actor/base-actor.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index 38124e94..f2a30b12 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -232,11 +232,13 @@ export class RdDBaseActor extends Actor { /* -------------------------------------------- */ async cleanupConteneurs() { - let updates = this.itemTypes['conteneur'] - .filter(c => c.system.contenu.filter(id => this.getItem(id) == undefined).length > 0) - .map(c => { return { _id: c._id, 'system.contenu': c.system.contenu.filter(id => this.getItem(id) != undefined) } }); - if (updates.length > 0) { - await this.updateEmbeddedDocuments("Item", updates) + if (Misc.isOwnerPlayerOrUniqueConnectedGM(this)) { + let updates = this.itemTypes['conteneur'] + .filter(c => c.system.contenu.filter(id => this.getItem(id) == undefined).length > 0) + .map(c => { return { _id: c._id, 'system.contenu': c.system.contenu.filter(id => this.getItem(id) != undefined) } }); + if (updates.length > 0) { + await this.updateEmbeddedDocuments("Item", updates) + } } }