@@ -5,7 +5,7 @@ const timeentry = require('../models/timeentry');
55const task = require ( '../models/task' ) ;
66const wbs = require ( '../models/wbs' ) ;
77const userProfile = require ( '../models/userProfile' ) ;
8- // const { hasPermission } = require('../utilities/permissions');
8+ const { hasPermission } = require ( '../utilities/permissions' ) ;
99const helper = require ( '../utilities/permissions' ) ;
1010const escapeRegex = require ( '../utilities/escapeRegex' ) ;
1111const logger = require ( '../startup/logger' ) ;
@@ -492,7 +492,6 @@ const projectController = function (Project) {
492492 */
493493 const getprojectMembership = async function ( req , res ) {
494494 try {
495- // GETs usually have no body; prefer req.user populated by your auth middleware.
496495 const requestor =
497496 ( req . user && ( req . user . _id || req . user . id ) ) || req . query ?. requestor || req . body ?. requestor ;
498497
@@ -514,7 +513,7 @@ const projectController = function (Project) {
514513
515514 const results = await userProfile
516515 . find (
517- { projects : projectId } ,
516+ { projects : mongoose . Types . ObjectId ( projectId ) } ,
518517 { firstName : 1 , lastName : 1 , profilePic : 1 , _id : 1 , isActive : 1 } ,
519518 )
520519 . sort ( { firstName : 1 , lastName : 1 } ) ;
@@ -525,6 +524,32 @@ const projectController = function (Project) {
525524 return res . status ( 500 ) . send ( 'Error fetching project members' ) ;
526525 }
527526 } ;
527+ const getAllTimeprojectMembership = async function ( req , res ) {
528+ const { projectId } = req . params ;
529+ if ( ! mongoose . Types . ObjectId . isValid ( projectId ) ) {
530+ res . status ( 400 ) . send ( 'Invalid request' ) ;
531+ return ;
532+ }
533+ const requestor =
534+ ( req . user && ( req . user . _id || req . user . id ) ) || req . query ?. requestor || req . body ?. requestor ;
535+ const getProjMembers = await hasPermission ( requestor , 'getProjectMembers' ) ;
536+ const postTask = await hasPermission ( requestor , 'postTask' ) ;
537+ const updateTask = await hasPermission ( requestor , 'updateTask' ) ;
538+ const suggestTask = await hasPermission ( requestor , 'suggestTask' ) ;
539+ const getId = getProjMembers || postTask || updateTask || suggestTask ;
540+ userProfile
541+ . find (
542+ { projectHistory : projectId } ,
543+ { firstName : 1 , lastName : 1 , isActive : 1 , profilePic : 1 , _id : getId } ,
544+ )
545+ . sort ( { firstName : 1 , lastName : 1 } )
546+ . then ( ( results ) => {
547+ res . status ( 200 ) . send ( results ) ;
548+ } )
549+ . catch ( ( error ) => {
550+ res . status ( 500 ) . send ( error ) ;
551+ } ) ;
552+ } ;
528553
529554 /**
530555 * Get project members summary (fast version)
@@ -555,7 +580,6 @@ const projectController = function (Project) {
555580 res . status ( 200 ) . json ( results ) ;
556581 } )
557582 . catch ( ( error ) => {
558- console . error ( 'Summary query error:' , error ) ;
559583 res . status ( 500 ) . send ( error ) ;
560584 } ) ;
561585 } ;
@@ -667,6 +691,7 @@ const projectController = function (Project) {
667691 getprojectMembershipSummary,
668692 searchProjectMembers,
669693 getProjectsWithActiveUserCounts,
694+ getAllTimeprojectMembership,
670695 } ;
671696} ;
672697
0 commit comments