Skip to content

Commit c25c247

Browse files
committed
All tests passing
1 parent 1da6532 commit c25c247

2 files changed

Lines changed: 16 additions & 4 deletions

File tree

src/backend/src/services/projects.services.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,16 @@ export default class ProjectsService {
639639

640640
const { teams, wbsElementId } = project;
641641

642-
if (!isAdmin(userCreated.role) || !isUserPartOfTeams(teams, userCreated))
642+
if (
643+
!isAdmin(userCreated.role) &&
644+
!teams.some(
645+
(team) =>
646+
team.headId === userCreated.userId ||
647+
team.leads.map((lead) => lead.userId).includes(userCreated.userId) ||
648+
team.members.map((member) => member.userId).includes(userCreated.userId)
649+
)
650+
)
651+
//&& !isUserPartOfTeams(teams, userCreated))
643652
throw new AccessDeniedException('Users must be admin, or assigned to the team to create assemblies');
644653

645654
const userCreatedId = userCreated.userId;

src/backend/tests/projects.test.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,8 @@ describe('Projects', () => {
306306
test('createAssembly fails when no permissions', async () => {
307307
vi.spyOn(prisma.project, 'findFirst').mockResolvedValue({
308308
wbsElement: { ...prismaProject1.wbsElement, dateDeleted: '' },
309-
projectId: prismaProject1.projectId
309+
projectId: prismaProject1.projectId,
310+
teams: [{ prismaTeam1, leads: [], members: [] }]
310311
} as any);
311312
await expect(
312313
async () =>
@@ -321,7 +322,8 @@ describe('Projects', () => {
321322
test('createAssembly fails when no permissions - leadership', async () => {
322323
vi.spyOn(prisma.project, 'findFirst').mockResolvedValue({
323324
wbsElement: { ...prismaProject1.wbsElement, dateDeleted: '' },
324-
projectId: prismaProject1.projectId
325+
projectId: prismaProject1.projectId,
326+
teams: [{ prismaTeam1, leads: [], members: [] }]
325327
} as any);
326328
await expect(
327329
async () =>
@@ -334,7 +336,8 @@ describe('Projects', () => {
334336
});
335337

336338
test('createAssembly works if the submitter is admin', async () => {
337-
vi.spyOn(prisma.project, 'findFirst').mockResolvedValue(prismaProject1);
339+
vi.spyOn(prisma.project, 'findFirst').mockResolvedValue({ ...prismaProject1, teams: [{ prismaTeam1 }] });
340+
//vi.spyOn(prisma.project, 'findFirst').mockResolvedValue(prismaProject1);
338341
vi.spyOn(prisma.assembly, 'create').mockResolvedValue(prismaAssembly1);
339342

340343
// no error, no return value

0 commit comments

Comments
 (0)