Skip to content

Commit e0f2e3f

Browse files
fix responsibility assigment not working
1 parent 766c83d commit e0f2e3f

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

src/client/components/Courses/Course/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,9 @@ const Course = () => {
123123
height: '40px',
124124
}
125125
const handleAddResponsible = async (user: User) => {
126+
126127
const username = user.username
127-
const result = await apiClient.post(`/courses/${chatInstance.id}/responsibilities/assign`, { username: username })
128+
const result = await apiClient.post(`/courses/${id}/responsibilities/assign`, { username: username })
128129
if (result.status === 200) {
129130
const responsibility = result.data
130131
setResponsibilities([...responsibilities, responsibility])
@@ -152,7 +153,7 @@ const Course = () => {
152153
)
153154
}
154155
const handleRemoveResponsibility = async (responsibility) => {
155-
const result = await apiClient.post(`/courses/${chatInstance.id}/responsibilities/remove`, { username: responsibility.user?.username })
156+
const result = await apiClient.post(`/courses/${id}/responsibilities/remove`, { username: responsibility.user?.username })
156157
if (result.status === 200) {
157158
const filteredResponsibilities = responsibilities.filter((r) => r.id !== responsibility.id)
158159
setResponsibilities(filteredResponsibilities)

src/server/routes/course.ts

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ courseRouter.get('/:id/enrolments', async (req: express.Request, res: express.Re
142142

143143
//checks if user is a admin or is responsible for the course, returns forbidden error if not
144144
const enforceUserHasFullAccess = async (user, chatInstance) => {
145-
const isResponsibleForCourse = userAssignedAsResponsible(user.id, chatInstance)
145+
const isResponsibleForCourse: boolean = userAssignedAsResponsible(user.id, chatInstance)
146146
const hasFullAccess: boolean = user.isAdmin || isResponsibleForCourse
147147
if (!hasFullAccess) {
148148
throw ApplicationError.Forbidden('Unauthorized')
@@ -151,9 +151,9 @@ const enforceUserHasFullAccess = async (user, chatInstance) => {
151151
}
152152

153153
// returns a chatInstance, throws an chat instance not found if not found
154-
const getChatInstance = async (id) => {
154+
const getChatInstance = async (courseId) => {
155155
const chatInstance = await ChatInstance.findOne({
156-
where: { courseId: id },
156+
where: { courseId: courseId },
157157
include: [
158158
{
159159
model: Responsibility,
@@ -302,16 +302,16 @@ const getUserByUsername = async (username: string): Promise<User | null> => {
302302
return user
303303
}
304304
courseRouter.post('/:id/responsibilities/assign', async (req, res) => {
305-
const chatInstanceId = req.params.id
305+
const courseId = req.params.id
306306
const body = req.body as {
307307
username: string
308308
}
309309
const assignedUserUsername: string = body.username
310310

311311
const request = req as unknown as RequestWithUser
312312
const { user } = request
313-
const chatInstance = await getChatInstance(chatInstanceId)
314-
const hasPermission = await enforceUserHasFullAccess(user, chatInstanceId)
313+
const chatInstance = await getChatInstance(courseId)
314+
const hasPermission = await enforceUserHasFullAccess(user, chatInstance)
315315
if (!hasPermission) {
316316
res.status(401).send('Unauthorized')
317317
return
@@ -351,16 +351,16 @@ courseRouter.post('/:id/responsibilities/assign', async (req, res) => {
351351
})
352352

353353
courseRouter.post('/:id/responsibilities/remove', async (req, res) => {
354-
const chatInstanceId = req.params.id
354+
const courseId = req.params.id
355355
const body = req.body as {
356356
username: string
357357
}
358358
const assignedUserUsername: string = body.username
359359

360360
const request = req as unknown as RequestWithUser
361361
const { user } = request
362-
const chatInstance = await getChatInstance(chatInstanceId)
363-
const hasPermission = await enforceUserHasFullAccess(user, chatInstanceId)
362+
const chatInstance = await getChatInstance(courseId)
363+
const hasPermission = await enforceUserHasFullAccess(user, chatInstance)
364364
if (!hasPermission) {
365365
res.status(401).send('Unauthorized')
366366
return
@@ -382,9 +382,10 @@ courseRouter.post('/:id/responsibilities/remove', async (req, res) => {
382382
const responsibilityToRemove = await Responsibility.findOne({
383383
where: {
384384
userId: assignedUserId,
385-
chatInstanceId: chatInstanceId,
385+
chatInstanceId: chatInstance.id,
386386
},
387387
})
388+
388389
if (!responsibilityToRemove?.createdByUserId) {
389390
res.status(400).send('Can only remove user that has been manually added')
390391
return

0 commit comments

Comments
 (0)