diff --git a/backend/routes/projects/index.js b/backend/routes/projects/index.js index 8bde248..032eac2 100644 --- a/backend/routes/projects/index.js +++ b/backend/routes/projects/index.js @@ -1,11 +1,14 @@ const express = require('express'); const router = express.Router(); -const defineProject = require('../../models/projects'); const { DataTypes, Op } = require('sequelize'); +const defineProject = require('../../models/projects'); +const defineMember = require('../../models/members'); module.exports = function (sequelize) { const { verifySignedIn } = require('../../middleware/auth')(sequelize); const Project = defineProject(sequelize, DataTypes); + const Member = defineMember(sequelize, DataTypes); + Project.hasMany(Member, { foreignKey: 'projectId' }); router.get('/', verifySignedIn, async (req, res) => { try { @@ -17,9 +20,24 @@ module.exports = function (sequelize) { }, }); } else { + // public projects, owned projects, participated projects will be returned projects = await Project.findAll({ + include: [ + { + model: Member, + attributes: [], + where: { + userId: req.userId, + }, + required: false, + }, + ], where: { - [Op.or]: [{ isPublic: true }, { userId: req.userId }], + [Op.or]: [ + { isPublic: true }, + { userId: req.userId }, + sequelize.where(sequelize.col('Members.userId'), req.userId), + ], }, }); } diff --git a/frontend/src/app/[locale]/HeaderNavbarMenu.tsx b/frontend/src/app/[locale]/HeaderNavbarMenu.tsx index f9470c1..c8ff589 100644 --- a/frontend/src/app/[locale]/HeaderNavbarMenu.tsx +++ b/frontend/src/app/[locale]/HeaderNavbarMenu.tsx @@ -100,7 +100,7 @@ export default function HeaderNavbarMenu({ messages, locale }: Props) { - 1.0.0-beta.13 + 1.0.0-beta.14 diff --git a/frontend/src/app/[locale]/account/AccountPage.tsx b/frontend/src/app/[locale]/account/AccountPage.tsx index 06e7d35..6a5a5ff 100644 --- a/frontend/src/app/[locale]/account/AccountPage.tsx +++ b/frontend/src/app/[locale]/account/AccountPage.tsx @@ -78,7 +78,11 @@ export default function AccountPage({ messages, locale }: Props) {

{myProject.detail}

- +
);