Skip to content

Commit

Permalink
HAI-1527 Rename role to kayttooikeustaso
Browse files Browse the repository at this point in the history
Role has been used for several different concepts in Haitaton. The used
to reference a collection of permission can be renamed to
kayttooikeustaso, since that's the word used in the domain.
  • Loading branch information
corvidian committed Aug 31, 2023
1 parent b8c53db commit 45706d1
Show file tree
Hide file tree
Showing 20 changed files with 355 additions and 184 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ private const val BASE_URL = "/hankkeet"
@WebMvcTest(HankeController::class, properties = ["haitaton.features.hanke-editing=false"])
@Import(IntegrationTestConfiguration::class)
@ActiveProfiles("itest")
@WithMockUser(USERNAME, roles = ["haitaton-user"])
@WithMockUser(USERNAME)
class HankeControllerHankeEditingDisabledITests(@Autowired override val mockMvc: MockMvc) :
ControllerTest {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ private const val BASE_URL = "/hankkeet"
@WebMvcTest(HankeController::class)
@Import(IntegrationTestConfiguration::class)
@ActiveProfiles("itest")
@WithMockUser(USERNAME, roles = ["haitaton-user"])
@WithMockUser(USERNAME)
class HankeControllerITests(@Autowired override val mockMvc: MockMvc) : ControllerTest {

@Autowired lateinit var hankeService: HankeService // faking these calls
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ import fi.hel.haitaton.hanke.logging.Operation
import fi.hel.haitaton.hanke.logging.Status
import fi.hel.haitaton.hanke.logging.UserRole
import fi.hel.haitaton.hanke.permissions.KayttajaTunnisteRepository
import fi.hel.haitaton.hanke.permissions.Kayttooikeustaso
import fi.hel.haitaton.hanke.permissions.PermissionService
import fi.hel.haitaton.hanke.permissions.Role
import fi.hel.haitaton.hanke.permissions.kayttajaTunnistePattern
import fi.hel.haitaton.hanke.test.Asserts.isRecent
import fi.hel.haitaton.hanke.test.TestUtils
Expand Down Expand Up @@ -345,8 +345,8 @@ class ApplicationServiceITest : DatabaseTest() {
val otherUser = "otherUser"
val hanke = hankeRepository.save(HankeEntity(hankeTunnus = "HAI-1234"))
val hanke2 = hankeRepository.save(HankeEntity(hankeTunnus = "HAI-1235"))
permissionService.setPermission(hanke.id!!, USERNAME, Role.HAKEMUSASIOINTI)
permissionService.setPermission(hanke2.id!!, "otherUser", Role.HAKEMUSASIOINTI)
permissionService.setPermission(hanke.id!!, USERNAME, Kayttooikeustaso.HAKEMUSASIOINTI)
permissionService.setPermission(hanke2.id!!, "otherUser", Kayttooikeustaso.HAKEMUSASIOINTI)

alluDataFactory.saveApplicationEntities(3, USERNAME, hanke = hanke) { _, application ->
application.userId = USERNAME
Expand Down Expand Up @@ -376,8 +376,8 @@ class ApplicationServiceITest : DatabaseTest() {
val hanke = hankeRepository.save(HankeEntity(hankeTunnus = "HAI-1234"))
val hanke2 = hankeRepository.save(HankeEntity(hankeTunnus = "HAI-1235"))
val hanke3 = hankeRepository.save(HankeEntity(hankeTunnus = "HAI-1236"))
permissionService.setPermission(hanke.id!!, USERNAME, Role.HAKEMUSASIOINTI)
permissionService.setPermission(hanke2.id!!, USERNAME, Role.HAKEMUSASIOINTI)
permissionService.setPermission(hanke.id!!, USERNAME, Kayttooikeustaso.HAKEMUSASIOINTI)
permissionService.setPermission(hanke2.id!!, USERNAME, Kayttooikeustaso.HAKEMUSASIOINTI)
val application1 = alluDataFactory.saveApplicationEntity(username = USERNAME, hanke = hanke)
val application2 =
alluDataFactory.saveApplicationEntity(username = "secondUser", hanke = hanke2)
Expand Down Expand Up @@ -1042,7 +1042,7 @@ class ApplicationServiceITest : DatabaseTest() {

val tunnisteet = kayttajaTunnisteRepository.findAll()
assertThat(tunnisteet).hasSize(1)
assertThat(tunnisteet[0].role).isEqualTo(Role.KATSELUOIKEUS)
assertThat(tunnisteet[0].kayttooikeustaso).isEqualTo(Kayttooikeustaso.KATSELUOIKEUS)
assertThat(tunnisteet[0].createdAt).isRecent()
assertThat(tunnisteet[0].sentAt).isNull()
assertThat(tunnisteet[0].tunniste).matches(Regex(kayttajaTunnistePattern))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import org.testcontainers.junit.jupiter.Testcontainers
@Testcontainers
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles("default")
@WithMockUser(username = "test", roles = ["haitaton-user"])
@WithMockUser(username = "test")
internal class GeometriatServiceImplITest : DatabaseTest() {

@Autowired private lateinit var hankeService: HankeService
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,12 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
)
} throws HankeNotFoundException(HANKE_TUNNUS)

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isNotFound)

verifySequence {
Expand Down Expand Up @@ -183,10 +188,15 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
PermissionCode.MODIFY_DELETE_PERMISSIONS
)
} returns false
val updates = mapOf(hankeKayttajaId to Role.HANKEMUOKKAUS)
val updates = mapOf(hankeKayttajaId to Kayttooikeustaso.HANKEMUOKKAUS)
justRun { hankeKayttajaService.updatePermissions(hanke, updates, false, USERNAME) }

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isNoContent)
.andExpect(content().string(""))

Expand All @@ -211,10 +221,15 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
PermissionCode.MODIFY_DELETE_PERMISSIONS
)
} returns true
val updates = mapOf(hankeKayttajaId to Role.HANKEMUOKKAUS)
val updates = mapOf(hankeKayttajaId to Kayttooikeustaso.HANKEMUOKKAUS)
justRun { hankeKayttajaService.updatePermissions(hanke, updates, true, USERNAME) }

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isNoContent)

verifyCalls(hanke, updates, deleteAdminPermission = true)
Expand All @@ -224,7 +239,12 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
fun `Returns forbidden when missing admin permissions`() {
val (hanke, updates) = setupForException(MissingAdminPermissionException(USERNAME))

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isForbidden)
.andExpect(hankeError(HankeError.HAI0005))

Expand All @@ -235,7 +255,12 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
fun `Returns forbidden when changing own permissions`() {
val (hanke, updates) = setupForException(ChangingOwnPermissionException(USERNAME))

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isForbidden)
.andExpect(hankeError(HankeError.HAI4002))

Expand All @@ -245,9 +270,16 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
@Test
fun `Returns internal server error if there are users without either permission or tunniste`() {
val (hanke, updates) =
setupForException(UsersWithoutRolesException(missingIds = listOf(hankeKayttajaId)))
setupForException(
UsersWithoutKayttooikeustasoException(missingIds = listOf(hankeKayttajaId))
)

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isInternalServerError)
.andExpect(hankeError(HankeError.HAI4003))

Expand All @@ -258,7 +290,12 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
fun `Returns conflict if there would be no admins remaining`() {
val (hanke, updates) = setupForException { hanke -> NoAdminRemainingException(hanke) }

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isConflict)
.andExpect(hankeError(HankeError.HAI4003))

Expand All @@ -272,7 +309,12 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
HankeKayttajatNotFoundException(listOf(hankeKayttajaId), hanke)
}

put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isBadRequest)
.andExpect(hankeError(HankeError.HAI4001))

Expand All @@ -281,7 +323,7 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C

private fun verifyCalls(
hanke: Hanke,
updates: Map<UUID, Role>,
updates: Map<UUID, Kayttooikeustaso>,
deleteAdminPermission: Boolean = false,
) {
verifySequence {
Expand All @@ -305,12 +347,14 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
}
}

private fun setupForException(ex: Throwable): Pair<Hanke, Map<UUID, Role>> =
private fun setupForException(ex: Throwable): Pair<Hanke, Map<UUID, Kayttooikeustaso>> =
setupForException {
ex
}

private fun setupForException(ex: (Hanke) -> Throwable): Pair<Hanke, Map<UUID, Role>> {
private fun setupForException(
ex: (Hanke) -> Throwable
): Pair<Hanke, Map<UUID, Kayttooikeustaso>> {
val hanke = HankeFactory.create()
every { hankeService.findHankeOrThrow(HANKE_TUNNUS) } returns hanke
justRun {
Expand All @@ -327,7 +371,7 @@ class HankeKayttajaControllerITest(@Autowired override val mockMvc: MockMvc) : C
PermissionCode.MODIFY_DELETE_PERMISSIONS
)
} returns false
val updates = mapOf(hankeKayttajaId to Role.HANKEMUOKKAUS)
val updates = mapOf(hankeKayttajaId to Kayttooikeustaso.HANKEMUOKKAUS)
every { hankeKayttajaService.updatePermissions(hanke, updates, false, USERNAME) } throws
ex(hanke)

Expand All @@ -352,7 +396,12 @@ class HankeKayttajaControllerFeatureDisabledITest(@Autowired override val mockMv
inner class UpdatePermissions {
@Test
fun `Returns not found when feature disabled`() {
put(url, PermissionUpdate(listOf(PermissionDto(hankeKayttajaId, Role.HANKEMUOKKAUS))))
put(
url,
PermissionUpdate(
listOf(PermissionDto(hankeKayttajaId, Kayttooikeustaso.HANKEMUOKKAUS))
)
)
.andExpect(status().isNotFound)
.andExpect(hankeError(HankeError.HAI0004))
}
Expand Down
Loading

0 comments on commit 45706d1

Please sign in to comment.