diff --git a/src/controller/projects.ts b/src/controller/projects.ts index 96de94d..00101a8 100644 --- a/src/controller/projects.ts +++ b/src/controller/projects.ts @@ -9,18 +9,18 @@ export const checkProjectAccess = (requiredPermission: IKeyRole) => async (userI if (!Types.ObjectId.isValid(projectId)) return { code: 3, message: "Invalid object id provided" }; - const project = await Project.findOne({ _id: projectId, creatorId: encryptClearField(userId) }); + let project = await Project.findOne({ _id: projectId, creatorId: encryptClearField(userId) }); if (project !== null) return project; const projectMember = await Member.findOne({ memberId: encryptClearField(userId || ""), accepted: true }); if (projectMember === null) return { code: 5009, message: "The provided project id does not exist" }; - const memberProject = await Project.findById(projectMember.projectId); - if (memberProject === null) return { code: 5009, message: "The provided project id does not exist" }; + project = await Project.findById(projectMember.projectId); + if (project === null) return { code: 5009, message: "The provided project id does not exist" }; - if (projectMember.role === IKeyRole.ADMIN) return memberProject; - if (requiredPermission === IKeyRole.MANAGE && projectMember.role === IKeyRole.MANAGE) return memberProject; - if (requiredPermission === IKeyRole.VIEW && (projectMember.role === IKeyRole.VIEW || projectMember.role === IKeyRole.MANAGE)) return memberProject; + if (projectMember.role === IKeyRole.ADMIN) return project; + if (requiredPermission === IKeyRole.MANAGE && projectMember.role === IKeyRole.MANAGE) return project; + if (requiredPermission === IKeyRole.VIEW && (projectMember.role === IKeyRole.VIEW || projectMember.role === IKeyRole.MANAGE)) return project; return { code: 5009, message: "The provided project id does not exist" }; }; @@ -34,7 +34,7 @@ export const listProjects = async (userId?: string) => { const projects = await Project.find({ creatorId: encryptClearField(userId || "") }); const memberProjects = await Member.find({ memberId: encryptClearField(userId || ""), accepted: true }); - for (let project of memberProjects) { + for (const project of memberProjects) { const foundProject = await Project.findById(project.projectId); if (foundProject !== null) projects.push(foundProject); }