Skip to content

Commit 7a72a21

Browse files
committed
Work package managers can also create tasks
1 parent 72a6609 commit 7a72a21

3 files changed

Lines changed: 11 additions & 8 deletions

File tree

src/backend/src/services/tasks.services.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,21 @@ export default class TasksService {
5757

5858
const curWorkPackages = project.workPackages;
5959

60-
const isWorkPackageLead = curWorkPackages.some((workPackage) => {
61-
return workPackage.wbsElement.projectLeadId === createdBy.userId;
60+
const isWorkPackageLeadOrManager = curWorkPackages.some((workPackage) => {
61+
return (
62+
workPackage.wbsElement.projectLeadId === createdBy.userId ||
63+
workPackage.wbsElement.projectManagerId === createdBy.userId
64+
);
6265
});
6366

6467
if (
6568
!isLeadership(createdBy.role) &&
6669
!isProjectLeadOrManager &&
67-
!isWorkPackageLead &&
70+
!isWorkPackageLeadOrManager &&
6871
!teams.some((team) => isUserOnTeam(team, createdBy))
6972
) {
7073
throw new AccessDeniedException(
71-
'Only admins, app-admins, project leads, project managers, work package leads, or current team users can create tasks'
74+
'Only admins, app-admins, project leads, project managers, work package leads, work package managers, or current team users can create tasks'
7275
);
7376
}
7477

src/backend/tests/tasks.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('Tasks', () => {
6363
TasksService.createTask(theVisitor, mockWBSNum, 'hellow world', '', mockDate, 'HIGH', 'DONE', [])
6464
).rejects.toThrow(
6565
new AccessDeniedException(
66-
'Only admins, app-admins, project leads, project managers, work package leads, or current team users can create tasks'
66+
'Only admins, app-admins, project leads, project managers, work package leads, work package managers, or current team users can create tasks'
6767
)
6868
);
6969

src/frontend/src/pages/ProjectDetailPage/ProjectViewContainer/TaskList/TaskList.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,14 @@ const TaskList = ({ project }: TaskListProps) => {
6666
const { user } = auth;
6767
if (!user) return <LoadingIndicator />;
6868

69-
const isWorkPackageLead = project.workPackages.some((workPackage) => {
70-
return workPackage.projectLead?.userId === user.userId;
69+
const isWorkPackageLeadOrManager = project.workPackages.some((workPackage) => {
70+
return workPackage.projectLead?.userId === user.userId || workPackage.projectManager?.userId === user.userId;
7171
});
7272

7373
const createTaskPermissions =
7474
isLeadership(user.role) ||
7575
project.projectLead?.userId === user.userId ||
76-
isWorkPackageLead ||
76+
isWorkPackageLeadOrManager ||
7777
project.projectManager?.userId === user.userId ||
7878
project.teams.some((team) => team.head.userId === user.userId) ||
7979
project.teams.some((team) => team.leads.map((lead) => lead.userId).includes(user.userId));

0 commit comments

Comments
 (0)