Securité: limiter les cleanupConteneurs

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
This commit is contained in:
Vincent Vandemeulebrouck 2024-07-04 20:49:57 +02:00
parent f207cb7325
commit 8561e3f8bc

View File

@ -232,11 +232,13 @@ export class RdDBaseActor extends Actor {
/* -------------------------------------------- */ /* -------------------------------------------- */
async cleanupConteneurs() { async cleanupConteneurs() {
let updates = this.itemTypes['conteneur'] if (Misc.isOwnerPlayerOrUniqueConnectedGM(this)) {
.filter(c => c.system.contenu.filter(id => this.getItem(id) == undefined).length > 0) let updates = this.itemTypes['conteneur']
.map(c => { return { _id: c._id, 'system.contenu': c.system.contenu.filter(id => this.getItem(id) != undefined) } }); .filter(c => c.system.contenu.filter(id => this.getItem(id) == undefined).length > 0)
if (updates.length > 0) { .map(c => { return { _id: c._id, 'system.contenu': c.system.contenu.filter(id => this.getItem(id) != undefined) } });
await this.updateEmbeddedDocuments("Item", updates) if (updates.length > 0) {
await this.updateEmbeddedDocuments("Item", updates)
}
} }
} }