(fix) Konfiguration-Setup Umbau zu SCS

This commit is contained in:
stefan
2025-07-19 14:13:51 +02:00
parent b3f8624aa9
commit e38ab27fbe
18 changed files with 655 additions and 121 deletions
@@ -129,7 +129,7 @@ class UserAuthorizationService(
for (roleType in roles) {
// Find the role by type
val rolle = rolleRepository.findByTyp(roleType)
if (rolle != null && rolle.rolleId != null) {
if (rolle != null) {
// Get role permissions
val rolleBerechtigungen = rolleBerechtigungRepository.findByRolleId(rolle.rolleId)
.filter { it.istAktiv }
@@ -1,20 +1,16 @@
package at.mocode.members.infrastructure.repository
// Import table definition and extension functions
import at.mocode.enums.BerechtigungE
import at.mocode.members.domain.model.DomBerechtigung
import at.mocode.members.domain.repository.BerechtigungRepository
import com.benasher44.uuid.Uuid
import kotlinx.datetime.Clock
import kotlinx.datetime.toKotlinInstant
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.ResultRow
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.SqlExpressionBuilder.like
// Import table definition and extension functions
import at.mocode.members.infrastructure.repository.BerechtigungTable
import at.mocode.members.infrastructure.repository.insertOrUpdate
import at.mocode.members.infrastructure.repository.toLocalDateTime
import at.mocode.members.infrastructure.repository.toInstant
import org.jetbrains.exposed.sql.deleteWhere
import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.update
/**
* Exposed-based implementation of BerechtigungRepository.
@@ -45,35 +41,35 @@ class BerechtigungRepositoryImpl : BerechtigungRepository {
}
override suspend fun findById(berechtigungId: Uuid): DomBerechtigung? {
return BerechtigungTable.select { BerechtigungTable.id eq berechtigungId }
return BerechtigungTable.selectAll().where { BerechtigungTable.id eq berechtigungId }
.map { rowToDomBerechtigung(it) }
.singleOrNull()
}
override suspend fun findByTyp(berechtigungTyp: BerechtigungE): DomBerechtigung? {
return BerechtigungTable.select { BerechtigungTable.berechtigungTyp eq berechtigungTyp }
return BerechtigungTable.selectAll().where { BerechtigungTable.berechtigungTyp eq berechtigungTyp }
.map { rowToDomBerechtigung(it) }
.singleOrNull()
}
override suspend fun findByName(name: String): List<DomBerechtigung> {
val searchPattern = "%$name%"
return BerechtigungTable.select { BerechtigungTable.name like searchPattern }
return BerechtigungTable.selectAll().where { BerechtigungTable.name like searchPattern }
.map { rowToDomBerechtigung(it) }
}
override suspend fun findByRessource(ressource: String): List<DomBerechtigung> {
return BerechtigungTable.select { BerechtigungTable.ressource eq ressource }
return BerechtigungTable.selectAll().where { BerechtigungTable.ressource eq ressource }
.map { rowToDomBerechtigung(it) }
}
override suspend fun findByAktion(aktion: String): List<DomBerechtigung> {
return BerechtigungTable.select { BerechtigungTable.aktion eq aktion }
return BerechtigungTable.selectAll().where { BerechtigungTable.aktion eq aktion }
.map { rowToDomBerechtigung(it) }
}
override suspend fun findAllActive(): List<DomBerechtigung> {
return BerechtigungTable.select { BerechtigungTable.istAktiv eq true }
return BerechtigungTable.selectAll().where { BerechtigungTable.istAktiv eq true }
.map { rowToDomBerechtigung(it) }
}
@@ -103,7 +99,7 @@ class BerechtigungRepositoryImpl : BerechtigungRepository {
}
override suspend fun existsByTyp(berechtigungTyp: BerechtigungE): Boolean {
return BerechtigungTable.select { BerechtigungTable.berechtigungTyp eq berechtigungTyp }
return BerechtigungTable.selectAll().where { BerechtigungTable.berechtigungTyp eq berechtigungTyp }
.count() > 0
}
@@ -1,20 +1,15 @@
package at.mocode.members.infrastructure.repository
// Import table definition and extension functions
import at.mocode.members.domain.model.DomPerson
import at.mocode.members.domain.repository.PersonRepository
import com.benasher44.uuid.Uuid
import kotlinx.datetime.Clock
import kotlinx.datetime.toKotlinInstant
import kotlinx.datetime.toKotlinLocalDate
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.ResultRow
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.SqlExpressionBuilder.like
// Import table definition and extension functions
import at.mocode.members.infrastructure.repository.PersonTable
import at.mocode.members.infrastructure.repository.insertOrUpdate
import at.mocode.members.infrastructure.repository.toLocalDateTime
import at.mocode.members.infrastructure.repository.toInstant
import org.jetbrains.exposed.sql.deleteWhere
import org.jetbrains.exposed.sql.or
import org.jetbrains.exposed.sql.selectAll
/**
* Exposed-based implementation of PersonRepository.
@@ -25,34 +20,34 @@ import at.mocode.members.infrastructure.repository.toInstant
class PersonRepositoryImpl : PersonRepository {
override suspend fun findById(id: Uuid): DomPerson? {
return PersonTable.select { PersonTable.id eq id }
return PersonTable.selectAll().where { PersonTable.id eq id }
.map { rowToDomPerson(it) }
.singleOrNull()
}
override suspend fun findByOepsSatzNr(oepsSatzNr: String): DomPerson? {
return PersonTable.select { PersonTable.oepsSatzNr eq oepsSatzNr }
return PersonTable.selectAll().where { PersonTable.oepsSatzNr eq oepsSatzNr }
.map { rowToDomPerson(it) }
.singleOrNull()
}
override suspend fun findByStammVereinId(vereinId: Uuid): List<DomPerson> {
return PersonTable.select { PersonTable.stammVereinId eq vereinId }
return PersonTable.selectAll().where { PersonTable.stammVereinId eq vereinId }
.map { rowToDomPerson(it) }
}
override suspend fun findByName(searchTerm: String, limit: Int): List<DomPerson> {
val searchPattern = "%$searchTerm%"
return PersonTable.select {
return PersonTable.selectAll().where {
(PersonTable.nachname like searchPattern) or
(PersonTable.vorname like searchPattern)
(PersonTable.vorname like searchPattern)
}
.limit(limit)
.map { rowToDomPerson(it) }
}
override suspend fun findAllActive(limit: Int, offset: Int): List<DomPerson> {
return PersonTable.select { PersonTable.istAktiv eq true }
return PersonTable.selectAll().where { PersonTable.istAktiv eq true }
.limit(limit, offset.toLong())
.map { rowToDomPerson(it) }
}
@@ -100,12 +95,12 @@ class PersonRepositoryImpl : PersonRepository {
}
override suspend fun existsByOepsSatzNr(oepsSatzNr: String): Boolean {
return PersonTable.select { PersonTable.oepsSatzNr eq oepsSatzNr }
return PersonTable.selectAll().where { PersonTable.oepsSatzNr eq oepsSatzNr }
.count() > 0
}
override suspend fun countActive(): Long {
return PersonTable.select { PersonTable.istAktiv eq true }
return PersonTable.selectAll().where { PersonTable.istAktiv eq true }
.count()
}
@@ -1,19 +1,12 @@
package at.mocode.members.infrastructure.repository
// Import table definition and extension functions
import at.mocode.members.domain.model.DomVerein
import at.mocode.members.domain.repository.VereinRepository
import com.benasher44.uuid.Uuid
import kotlinx.datetime.Clock
import kotlinx.datetime.toKotlinInstant
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.SqlExpressionBuilder.like
// Import table definition and extension functions
import at.mocode.members.infrastructure.repository.VereinTable
import at.mocode.members.infrastructure.repository.insertOrUpdate
import at.mocode.members.infrastructure.repository.toLocalDateTime
import at.mocode.members.infrastructure.repository.toInstant
/**
* Exposed-based implementation of VereinRepository.
@@ -24,48 +17,48 @@ import at.mocode.members.infrastructure.repository.toInstant
class VereinRepositoryImpl : VereinRepository {
override suspend fun findById(id: Uuid): DomVerein? {
return VereinTable.select { VereinTable.id eq id }
return VereinTable.selectAll().where { VereinTable.id eq id }
.map { rowToDomVerein(it) }
.singleOrNull()
}
override suspend fun findByOepsVereinsNr(oepsVereinsNr: String): DomVerein? {
return VereinTable.select { VereinTable.oepsVereinsNr eq oepsVereinsNr }
return VereinTable.selectAll().where { VereinTable.oepsVereinsNr eq oepsVereinsNr }
.map { rowToDomVerein(it) }
.singleOrNull()
}
override suspend fun findByName(searchTerm: String, limit: Int): List<DomVerein> {
val searchPattern = "%$searchTerm%"
return VereinTable.select {
return VereinTable.selectAll().where {
(VereinTable.name like searchPattern) or
(VereinTable.kuerzel like searchPattern)
(VereinTable.kuerzel like searchPattern)
}
.limit(limit)
.map { rowToDomVerein(it) }
}
override suspend fun findByBundeslandId(bundeslandId: Uuid): List<DomVerein> {
return VereinTable.select { VereinTable.bundeslandId eq bundeslandId }
return VereinTable.selectAll().where { VereinTable.bundeslandId eq bundeslandId }
.map { rowToDomVerein(it) }
}
override suspend fun findByLandId(landId: Uuid): List<DomVerein> {
return VereinTable.select { VereinTable.landId eq landId }
return VereinTable.selectAll().where { VereinTable.landId eq landId }
.map { rowToDomVerein(it) }
}
override suspend fun findAllActive(limit: Int, offset: Int): List<DomVerein> {
return VereinTable.select { VereinTable.istAktiv eq true }
return VereinTable.selectAll().where { VereinTable.istAktiv eq true }
.limit(limit, offset.toLong())
.map { rowToDomVerein(it) }
}
override suspend fun findByLocation(searchTerm: String, limit: Int): List<DomVerein> {
val searchPattern = "%$searchTerm%"
return VereinTable.select {
return VereinTable.selectAll().where {
(VereinTable.ort like searchPattern) or
(VereinTable.plz like searchPattern)
(VereinTable.plz like searchPattern)
}
.limit(limit)
.map { rowToDomVerein(it) }
@@ -104,19 +97,18 @@ class VereinRepositoryImpl : VereinRepository {
}
override suspend fun existsByOepsVereinsNr(oepsVereinsNr: String): Boolean {
return VereinTable.select { VereinTable.oepsVereinsNr eq oepsVereinsNr }
return VereinTable.selectAll().where { VereinTable.oepsVereinsNr eq oepsVereinsNr }
.count() > 0
}
override suspend fun countActive(): Long {
return VereinTable.select { VereinTable.istAktiv eq true }
return VereinTable.selectAll().where { VereinTable.istAktiv eq true }
.count()
}
override suspend fun countActiveByBundeslandId(bundeslandId: Uuid): Long {
return VereinTable.select {
(VereinTable.istAktiv eq true) and (VereinTable.bundeslandId eq bundeslandId)
}
return VereinTable.selectAll()
.where { (VereinTable.istAktiv eq true) and (VereinTable.bundeslandId eq bundeslandId) }
.count()
}