From 7a59b4542e6aceab94d086abbe8fa8596e123774 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Thu, 20 Jun 2019 16:42:05 +0200 Subject: [PATCH] added library publication --- app/imports/server/publications/library.js | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/app/imports/server/publications/library.js b/app/imports/server/publications/library.js index a2981ecc..0e9219d9 100644 --- a/app/imports/server/publications/library.js +++ b/app/imports/server/publications/library.js @@ -1,4 +1,5 @@ import Libraries from '/imports/api/library/Libraries.js'; +import LibraryNodes from '/imports/api/library/LibraryNodes.js'; const standardLibraryIds = [ 'SRDLibraryGA3XWsd', @@ -29,6 +30,7 @@ Meteor.publish('standardLibrarySpells', function(level){ Meteor.publish('libraries', function(){ const user = Meteor.user(); const userId = user && user._id; + if (!userId) return []; const subs = user && user.subscribedLibraries || []; return Libraries.find({ $or: [ @@ -39,3 +41,25 @@ Meteor.publish('libraries', function(){ ] }); }); + +Meteor.publish('library', function(libraryId){ + const user = Meteor.user(); + const userId = user && user._id; + if (!userId) return []; + let libraryCursor = Libraries.find({ + _id: libraryId, + $or: [ + {owner: userId}, + {writers: userId}, + {readers: userId}, + {_id: {$in: subs}}, + ], + }); + if (!libraryCursor.count()) return []; + return [ + libraryCursor, + LibraryNodes.find({ + 'ancestors.id': libraryId, + }), + ]; +});