diff --git a/server/models/project.js b/server/models/project.js index 4f0506a..2a5ee9c 100644 --- a/server/models/project.js +++ b/server/models/project.js @@ -4,6 +4,8 @@ const _ = require('lodash'); const tools = require('../tools/general'); +var server_constants = require('../tools/server_constants'); + mongoose.Promise = global.Promise; mongoose.level = "F"; @@ -27,6 +29,12 @@ var ProjectSchema = new mongoose.Schema({ longdescr: { type: String, }, + typeproj: { + type: Number, + }, + id_main_project: { + type: String, + }, id_parent: { type: String, }, @@ -97,6 +105,12 @@ var ProjectSchema = new mongoose.Schema({ }, endwork_estimate: { type: Date + }, + privacyread: { + type: String + }, + privacywrite: { + type: String } }); @@ -145,8 +159,11 @@ ProjectSchema.statics.findProjectByUserId = function (userId, idproj) { ProjectSchema.statics.findAllByUserId = function (userId) { var Project = this; - return Project.find({ - 'userId': userId, + return Project.find({ 'typeproj': server_constants.TypeProj.TYPE_PROJECT, + $or: [ + { 'userId': userId }, + {'privacyread' : server_constants.Privacy.all} + ] }).then(ris => { return ris }) diff --git a/server/tools/general.js b/server/tools/general.js index 84db08f..c7fc8b5 100644 --- a/server/tools/general.js +++ b/server/tools/general.js @@ -65,8 +65,9 @@ module.exports = { // #TODO Projects++ Add fields ... allfieldProject: function () { - return ['userId', 'pos', 'id_parent', 'descr', 'longdescr', 'hoursplanned', 'hoursworked', 'priority', 'statusproj', 'created_at', 'modify_at', - 'completed_at', 'expiring_at', 'enableExpiring', 'id_prev', 'progressCalc', 'modified', 'live_url', 'test_url', 'begin_development', 'begin_test', 'totalphases', 'actualphase', 'hoursweeky_plannedtowork', 'endwork_estimate'] + return ['userId', 'pos', 'typeproj', 'id_main_project', 'id_parent', 'descr', 'longdescr', 'hoursplanned', 'hoursworked', 'priority', 'statusproj', 'created_at', 'modify_at', + 'completed_at', 'expiring_at', 'enableExpiring', 'id_prev', 'progressCalc', 'modified', 'live_url', 'test_url', 'begin_development', 'begin_test', 'totalphases', 'actualphase', 'hoursweeky_plannedtowork', 'endwork_estimate' + , 'privacyread', 'privacywrite'] }, allfieldProjectWithId: function () { diff --git a/server/tools/server_constants.js b/server/tools/server_constants.js index a50f465..0d9283d 100644 --- a/server/tools/server_constants.js +++ b/server/tools/server_constants.js @@ -17,4 +17,16 @@ module.exports = Object.freeze({ LIST_END: '10000000', LIST_START: '0', + Privacy: { + all: 'all', + friends: 'friends', + mygroup: 'mygroup', + onlyme: 'onlyme' + }, + + TypeProj: { + TYPE_PROJECT: 1, + TYPE_SUBDIR: 2, + } + });