Vastly improved new character UX
Characters now can limit which libraries they allow
This commit is contained in:
31
app/imports/api/library/getUserLibraryIds.js
Normal file
31
app/imports/api/library/getUserLibraryIds.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import LibraryCollections from '/imports/api/library/LibraryCollections.js';
|
||||
import Libraries from '/imports/api/library/Libraries.js';
|
||||
import { union } from 'lodash';
|
||||
|
||||
export default function getUserLibraryIds(userId) {
|
||||
if (!userId) return [];
|
||||
const user = Meteor.users.findOne(userId);
|
||||
let subbedIds = user?.subscribedLibraries || [];
|
||||
const subCollections = user?.subscribedLibraryCollections || [];
|
||||
LibraryCollections.find({
|
||||
$or: [
|
||||
{ owner: userId },
|
||||
{ writers: userId },
|
||||
{ readers: userId },
|
||||
{ _id: { $in: subCollections }, public: true },
|
||||
]
|
||||
}, { fields: { libraries: 1 } }).forEach(collection => {
|
||||
subbedIds = union(subbedIds, collection.libraries);
|
||||
});
|
||||
const libraryIds = Libraries.find({
|
||||
$or: [
|
||||
{ owner: userId },
|
||||
{ writers: userId },
|
||||
{ readers: userId },
|
||||
{ _id: { $in: subbedIds }, public: true },
|
||||
]
|
||||
}, {
|
||||
fields: { _id: 1 }
|
||||
}).map(lib => lib._id);
|
||||
return libraryIds;
|
||||
}
|
||||
Reference in New Issue
Block a user