@@ -75,13 +75,13 @@ class ExampleService(
7575 return proxy.studentHasVisibleExamples(courseSlug)
7676 }
7777
78- fun getExample (courseSlug : String , exampleSlug : String , userId : String ): TaskWorkspace {
78+ fun getExample (courseSlug : String , exampleSlug : String , user : String ): TaskWorkspace {
7979 val workspace = exampleRepository.findByCourse_SlugAndSlug(courseSlug, exampleSlug)
8080 ? : throw ResponseStatusException (
8181 HttpStatus .NOT_FOUND ,
8282 " No example found with the Slug $exampleSlug "
8383 )
84-
84+ val userId = roleService.getUserId(user)
8585 workspace.setUserId(userId)
8686 return workspace
8787 }
@@ -193,7 +193,8 @@ class ExampleService(
193193 ): Submission {
194194 val newSubmission = createExampleSubmission(courseSlug, exampleSlug, submission, submissionReceivedAt)
195195
196- val userRoles = roleService.getUserRoles(listOf (submission.userId!! ))
196+ val usernames = roleService.getRegistrationIDCandidates(submission.userId!! )
197+ val userRoles = roleService.getUserRoles(usernames)
197198 val isAdmin = roleService.isAdmin(userRoles, courseSlug)
198199
199200 if (newSubmission.command == Command .GRADE && ! isAdmin) {
@@ -274,7 +275,8 @@ class ExampleService(
274275 val example = getExampleBySlug(courseSlug, exampleSlug)
275276
276277 // If the user is admin, don't check
277- val userRoles = roleService.getUserRoles(listOf (submissionDTO.userId!! ))
278+ val usernames = roleService.getRegistrationIDCandidates(submissionDTO.userId!! )
279+ val userRoles = roleService.getUserRoles(usernames)
278280 val isAdmin = roleService.isAdmin(userRoles, courseSlug)
279281
280282 if (! isAdmin) {
0 commit comments