diff --git a/app/imports/api/library/LibraryNodes.js b/app/imports/api/library/LibraryNodes.js index 3df46242..c379a6ce 100644 --- a/app/imports/api/library/LibraryNodes.js +++ b/app/imports/api/library/LibraryNodes.js @@ -1,10 +1,17 @@ import schema from '/imports/api/schema.js'; -import SharingSchema from '/imports/api/sharing/SharingSchema.js'; import ChildSchema from '/imports/api/parenting/ChildSchema.js'; import librarySchemas from '/imports/api/library/librarySchemas.js'; let LibraryNodes = new Mongo.Collection('libraryNodes'); +const RefSchema = new SimpleSchema({ + id: { + type: String, + regEx: SimpleSchema.RegEx.Id, + index: 1 + }, +}); + let LibraryNodeSchema = schema({ name: { type: String, @@ -13,6 +20,21 @@ let LibraryNodeSchema = schema({ libraryNodeType: { type: String, allowedValues: Object.keys(librarySchemas), + }, + order: { + type: SimpleSchema.Integer, + index: true, + }, + parent: { + type: RefSchema, + }, + // ancestors[0] should be the library to check for permission + ancestors: { + type: Array, + defaultValue: [], + }, + 'ancestors.$': { + type: RefSchema, }, }); @@ -21,9 +43,6 @@ for (let key in librarySchemas){ schema.extend(librarySchemas[key]); schema.extend(LibraryNodeSchema); schema.extend(ChildSchema); - if (key === 'folder'){ - schema.extend(SharingSchema); - } LibraryNodes.attachSchema(schema, { selector: {libraryNodeType: key} });