@@ -142,7 +142,7 @@ courseRouter.get('/:id/enrolments', async (req: express.Request, res: express.Re
142
142
143
143
//checks if user is a admin or is responsible for the course, returns forbidden error if not
144
144
const enforceUserHasFullAccess = async ( user , chatInstance ) => {
145
- const isResponsibleForCourse = userAssignedAsResponsible ( user . id , chatInstance )
145
+ const isResponsibleForCourse : boolean = userAssignedAsResponsible ( user . id , chatInstance )
146
146
const hasFullAccess : boolean = user . isAdmin || isResponsibleForCourse
147
147
if ( ! hasFullAccess ) {
148
148
throw ApplicationError . Forbidden ( 'Unauthorized' )
@@ -151,9 +151,9 @@ const enforceUserHasFullAccess = async (user, chatInstance) => {
151
151
}
152
152
153
153
// returns a chatInstance, throws an chat instance not found if not found
154
- const getChatInstance = async ( id ) => {
154
+ const getChatInstance = async ( courseId ) => {
155
155
const chatInstance = await ChatInstance . findOne ( {
156
- where : { courseId : id } ,
156
+ where : { courseId : courseId } ,
157
157
include : [
158
158
{
159
159
model : Responsibility ,
@@ -302,16 +302,16 @@ const getUserByUsername = async (username: string): Promise<User | null> => {
302
302
return user
303
303
}
304
304
courseRouter . post ( '/:id/responsibilities/assign' , async ( req , res ) => {
305
- const chatInstanceId = req . params . id
305
+ const courseId = req . params . id
306
306
const body = req . body as {
307
307
username : string
308
308
}
309
309
const assignedUserUsername : string = body . username
310
310
311
311
const request = req as unknown as RequestWithUser
312
312
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 )
315
315
if ( ! hasPermission ) {
316
316
res . status ( 401 ) . send ( 'Unauthorized' )
317
317
return
@@ -351,16 +351,16 @@ courseRouter.post('/:id/responsibilities/assign', async (req, res) => {
351
351
} )
352
352
353
353
courseRouter . post ( '/:id/responsibilities/remove' , async ( req , res ) => {
354
- const chatInstanceId = req . params . id
354
+ const courseId = req . params . id
355
355
const body = req . body as {
356
356
username : string
357
357
}
358
358
const assignedUserUsername : string = body . username
359
359
360
360
const request = req as unknown as RequestWithUser
361
361
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 )
364
364
if ( ! hasPermission ) {
365
365
res . status ( 401 ) . send ( 'Unauthorized' )
366
366
return
@@ -382,9 +382,10 @@ courseRouter.post('/:id/responsibilities/remove', async (req, res) => {
382
382
const responsibilityToRemove = await Responsibility . findOne ( {
383
383
where : {
384
384
userId : assignedUserId ,
385
- chatInstanceId : chatInstanceId ,
385
+ chatInstanceId : chatInstance . id ,
386
386
} ,
387
387
} )
388
+
388
389
if ( ! responsibilityToRemove ?. createdByUserId ) {
389
390
res . status ( 400 ) . send ( 'Can only remove user that has been manually added' )
390
391
return
0 commit comments