diff --git a/src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersController.kt b/src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersController.kt index 36f197e0..5a294e65 100644 --- a/src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersController.kt +++ b/src/main/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersController.kt @@ -22,13 +22,12 @@ class ManageLocalAuthorityUsersController( model: Model, principal: Principal, ): String { - val currentUserLocalAuthority = localAuthorityDataService.getLocalAuthorityForUser(principal.name) - if (currentUserLocalAuthority?.id != null) { - // We should always get to here as only LA_ADMINs can access this page - val users = localAuthorityDataService.getLocalAuthorityUsersForLocalAuthority(currentUserLocalAuthority.id) - val usersJson = Json.encodeToString(users) - model.addAttribute("usersJson", usersJson) - } + val currentUserLocalAuthority = localAuthorityDataService.getLocalAuthorityForUser(principal.name)!! + currentUserLocalAuthority.id!! + + val users = localAuthorityDataService.getLocalAuthorityUsersForLocalAuthority(currentUserLocalAuthority.id) + val usersJson = Json.encodeToString(users) + model.addAttribute("usersJson", usersJson) model.addAttribute("contentHeader", "Manage Local Authority Users") model.addAttribute("title", "Manage Local Authority Users") diff --git a/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/LocalAuthorityDataService.kt b/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/LocalAuthorityDataService.kt index 7492332c..6c696adb 100644 --- a/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/LocalAuthorityDataService.kt +++ b/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/LocalAuthorityDataService.kt @@ -16,10 +16,6 @@ class LocalAuthorityDataService( fun getLocalAuthorityForUser(subjectId: String): LocalAuthority? { val localAuthorityUser = localAuthorityUserRepository.findByBaseUser_Id(subjectId) - if (localAuthorityUser == null) { - return null - } - - return localAuthorityUser.localAuthority + return localAuthorityUser?.localAuthority } } diff --git a/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesService.kt b/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesService.kt index 232ce492..0fc5befd 100644 --- a/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesService.kt +++ b/src/main/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesService.kt @@ -21,9 +21,8 @@ class UserRolesService( if (matchingLocalAuthorityUser != null) { if (matchingLocalAuthorityUser.isManager) { roles.add("ROLE_LA_ADMIN") - } else { - roles.add("ROLE_LA_USER") } + roles.add("ROLE_LA_USER") } return roles diff --git a/src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersControllerTests.kt b/src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersControllerTests.kt index 74ed33e6..a1f55595 100644 --- a/src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersControllerTests.kt +++ b/src/test/kotlin/uk/gov/communities/prsdb/webapp/controllers/ManageLocalAuthorityUsersControllerTests.kt @@ -1,10 +1,13 @@ package uk.gov.communities.prsdb.webapp.controllers +import org.mockito.Mockito import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest import org.springframework.security.test.context.support.WithMockUser +import org.springframework.test.util.ReflectionTestUtils import org.springframework.test.web.servlet.get import org.springframework.web.context.WebApplicationContext +import uk.gov.communities.prsdb.webapp.database.entity.LocalAuthority import kotlin.test.Test @WebMvcTest(ManageLocalAuthorityUsersController::class) @@ -31,6 +34,12 @@ class ManageLocalAuthorityUsersControllerTests( @Test @WithMockUser(roles = ["LA_ADMIN"]) fun `ManageLocalAuthorityUsersController returns 200 for authorized user`() { + val localAuthority = LocalAuthority() + ReflectionTestUtils.setField(localAuthority, "id", 123) + Mockito + .`when`(localAuthorityDataService.getLocalAuthorityForUser("user")) + .thenReturn(localAuthority) + mvc .get("/manage-users") .andExpect { diff --git a/src/test/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesServiceTests.kt b/src/test/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesServiceTests.kt index 4914b45d..31d85065 100644 --- a/src/test/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesServiceTests.kt +++ b/src/test/kotlin/uk/gov/communities/prsdb/webapp/services/UserRolesServiceTests.kt @@ -63,8 +63,9 @@ class UserRolesServiceTests { val roles = userRolesService.getRolesForSubjectId("test-user-1") // Assert - Assertions.assertEquals(1, roles.size) + Assertions.assertEquals(2, roles.size) Assertions.assertEquals("ROLE_LA_ADMIN", roles[0]) + Assertions.assertEquals("ROLE_LA_USER", roles[1]) } @Test