Merge pull request #239 from kimatata/develop

This commit is contained in:
kimatata
2025-06-07 22:14:21 +09:00
committed by GitHub
3 changed files with 26 additions and 4 deletions

View File

@@ -1,11 +1,14 @@
const express = require('express'); const express = require('express');
const router = express.Router(); const router = express.Router();
const defineProject = require('../../models/projects');
const { DataTypes, Op } = require('sequelize'); const { DataTypes, Op } = require('sequelize');
const defineProject = require('../../models/projects');
const defineMember = require('../../models/members');
module.exports = function (sequelize) { module.exports = function (sequelize) {
const { verifySignedIn } = require('../../middleware/auth')(sequelize); const { verifySignedIn } = require('../../middleware/auth')(sequelize);
const Project = defineProject(sequelize, DataTypes); const Project = defineProject(sequelize, DataTypes);
const Member = defineMember(sequelize, DataTypes);
Project.hasMany(Member, { foreignKey: 'projectId' });
router.get('/', verifySignedIn, async (req, res) => { router.get('/', verifySignedIn, async (req, res) => {
try { try {
@@ -17,9 +20,24 @@ module.exports = function (sequelize) {
}, },
}); });
} else { } else {
// public projects, owned projects, participated projects will be returned
projects = await Project.findAll({ projects = await Project.findAll({
include: [
{
model: Member,
attributes: [],
where: {
userId: req.userId,
},
required: false,
},
],
where: { where: {
[Op.or]: [{ isPublic: true }, { userId: req.userId }], [Op.or]: [
{ isPublic: true },
{ userId: req.userId },
sequelize.where(sequelize.col('Members.userId'), req.userId),
],
}, },
}); });
} }

View File

@@ -100,7 +100,7 @@ export default function HeaderNavbarMenu({ messages, locale }: Props) {
<NavbarItem className="hidden md:block"> <NavbarItem className="hidden md:block">
<Chip size="sm" variant="flat"> <Chip size="sm" variant="flat">
<Link className="data-[active=true]:text-primary data-[active=true]:font-medium" href="/" locale={locale}> <Link className="data-[active=true]:text-primary data-[active=true]:font-medium" href="/" locale={locale}>
1.0.0-beta.13 1.0.0-beta.14
</Link> </Link>
</Chip> </Chip>
</NavbarItem> </NavbarItem>

View File

@@ -78,7 +78,11 @@ export default function AccountPage({ messages, locale }: Props) {
</CardHeader> </CardHeader>
<CardFooter className="justify-between pt-0"> <CardFooter className="justify-between pt-0">
<p className="text-small text-default-500">{myProject.detail}</p> <p className="text-small text-default-500">{myProject.detail}</p>
<PublicityChip isPublic={true} publicText={messages.public} privateText={messages.private} /> <PublicityChip
isPublic={myProject.isPublic}
publicText={messages.public}
privateText={messages.private}
/>
</CardFooter> </CardFooter>
</Card> </Card>
); );