1
0

RBAC-rebuild (#140)

Co-authored-by: Michael Hoennig <michael@hoennig.de>
Reviewed-on: https://dev.hostsharing.net/hostsharing/hs.hsadmin.ng/pulls/140
Reviewed-by: Timotheus Pokorra <timotheus.pokorra@hostsharing.net>
This commit is contained in:
Michael Hoennig
2025-01-02 10:02:47 +01:00
parent 9debaa1fc0
commit 71be87b36b
45 changed files with 1367 additions and 359 deletions

View File

@@ -290,6 +290,32 @@ class RbacGrantRepositoryIntegrationTest extends ContextBasedTest {
}
}
@Nested
class RebuildRbacSystem {
@Test
public void rebuildingTheRbacSystemWitSameRbacSpecDoesNotChangeGrantNorRoleCount() {
final var grantCountBefore = sql("SELECT COUNT(*) FROM rbac.grants");
final var roleCountBefore = sql("SELECT COUNT(*) FROM rbac.role");
jpaAttempt.transacted(() ->
em.createNativeQuery("CALL rbactest.package_rebuild_rbac_system()")
);
final var grantCountAfter = sql("SELECT COUNT(*) FROM rbac.grants");
assertThat(grantCountBefore).as("grant count must not change").isEqualTo(grantCountAfter);
final var roleCountAfter = sql("SELECT COUNT(*) FROM rbac.role");
assertThat(roleCountBefore).as("role count must not change").isEqualTo(roleCountAfter);
}
private Object sql(final String query) {
return jpaAttempt.transacted(() ->
em.createNativeQuery(query).getSingleResult()
).assumeSuccessful().returnedValue();
}
}
private RbacSubjectEntity createNewUserTransacted() {
return jpaAttempt.transacted(() -> {
final var newUserName = "test-user-" + System.currentTimeMillis() + "@example.com";