From e1b016cf3d4ff93e9e0fe1feb96372e3e1625233 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Thu, 9 May 2019 16:17:53 +0300 Subject: Prevent data loss. Thanks to xet7 ! --- models/users.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/models/users.js b/models/users.js index 4ce0ca3f..5f949c80 100644 --- a/models/users.js +++ b/models/users.js @@ -690,16 +690,22 @@ if (Meteor.isServer) { }, {unique: true}); }); - Users.before.remove((userId, doc) => { - Boards - .find({members: {$elemMatch: {userId: doc._id, isAdmin: true}}}) - .forEach((board) => { - // If only one admin for the board - if (board.members.filter((e) => e.isAdmin).length === 1) { - Boards.remove(board._id); - } - }); - }); + // OLD WAY THIS CODE DID WORK: When user is last admin of board, + // if admin is removed, board is removed. + // NOW THIS IS COMMENTED OUT, because other board users still need to be able + // to use that board, and not have board deleted. + // Someone can be later changed to be admin of board, by making change to database. + // TODO: Add UI for changing someone as board admin. + //Users.before.remove((userId, doc) => { + // Boards + // .find({members: {$elemMatch: {userId: doc._id, isAdmin: true}}}) + // .forEach((board) => { + // // If only one admin for the board + // if (board.members.filter((e) => e.isAdmin).length === 1) { + // Boards.remove(board._id); + // } + // }); + //}); // Each board document contains the de-normalized number of users that have // starred it. If the user star or unstar a board, we need to update this -- cgit v1.2.3-1-g7c22