progress
This commit is contained in:
1 parent
6ab9a59597
commit
8976e25499
4 files changed
+71
No files matched your search
@@ -20,6 +20,7 @@ import net.keinekekse.app.books.db.schema.emptyBook
|
||||
import net.keinekekse.app.books.scan.getCover
|
||||
import net.keinekekse.app.books.scan.getIsbnFromCalibre
|
||||
import net.keinekekse.app.books.ui.*
|
||||
import net.keinekekse.app.core.auth.Sessions
|
||||
import net.keinekekse.app.core.auth.UserRoles
|
||||
import net.keinekekse.app.core.config.KeycloakSession
|
||||
import net.keinekekse.app.core.config.onUnauthorized
|
||||
@@ -32,6 +33,7 @@ fun Application.configureRouting(
|
||||
@Named("booksDb") db: Database,
|
||||
booksRepo: BookRepository,
|
||||
keycloakSession: KeycloakSession,
|
||||
sessions: Sessions,
|
||||
// resultCallback: (String, String) -> Unit,
|
||||
) {
|
||||
log.info("Configuring books routing")
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package net.keinekekse.app.books.edit
|
||||
|
||||
import net.keinekekse.app.core.auth.UserSession
|
||||
|
||||
class BooksSession(
|
||||
override val userId: String,
|
||||
override val sessionId: String,
|
||||
override var data: BooksSessionData
|
||||
) : UserSession<BooksSessionData>
|
||||
|
||||
|
||||
class BooksSessionData() {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package net.keinekekse.app.core.auth
|
||||
|
||||
import kotlin.uuid.ExperimentalUuidApi
|
||||
import kotlin.uuid.Uuid
|
||||
|
||||
class Sessions {
|
||||
|
||||
var sessions: MutableMap<String, MutableMap<String, UserSession<*>>> = mutableMapOf()
|
||||
|
||||
@OptIn(ExperimentalUuidApi::class)
|
||||
fun newSessionId(): String {
|
||||
return Uuid.generateV4().toHexDashString()
|
||||
}
|
||||
|
||||
fun getUserSessions(uid: String): MutableMap<String, UserSession<*>>? {
|
||||
return sessions.get(uid)
|
||||
}
|
||||
|
||||
fun getUserSession(uid: String, sessionId: String): UserSession<*>? {
|
||||
return sessions.get(uid)?.get(sessionId)
|
||||
}
|
||||
|
||||
fun setUserSession(uid: String, sessionId: String, data: UserSession<*>) {
|
||||
sessions.getOrPut(uid) { mutableMapOf() }[sessionId] = data
|
||||
}
|
||||
|
||||
// fun addSession(uid: String) {
|
||||
// sessions[uid] = BooksSession(uid, "", "")
|
||||
// }
|
||||
//
|
||||
// fun addTestSession(uid: String) {
|
||||
// sessions[uid] = TestSession(uid, "", 0)
|
||||
// }
|
||||
}
|
||||
|
||||
interface UserSession<T> {
|
||||
val userId: String
|
||||
val sessionId: String
|
||||
|
||||
var data: T
|
||||
}
|
||||
|
||||
//data class BooksSession(
|
||||
// override val userId: String,
|
||||
// override val sessionId: String,
|
||||
// override var data: String,
|
||||
//) : UserSession<String>
|
||||
//
|
||||
//data class TestSession(
|
||||
// override val userId: String,
|
||||
// override val sessionId: String,
|
||||
// override var data: Int,
|
||||
//) : UserSession<Int>
|
||||
@@ -8,6 +8,7 @@ import io.ktor.server.response.*
|
||||
import io.ktor.server.sessions.*
|
||||
import io.ktor.utils.io.*
|
||||
import net.keinekekse.app.core.auth.AppPrincipal
|
||||
import net.keinekekse.app.core.auth.Sessions
|
||||
import net.keinekekse.app.core.auth.UserRoles
|
||||
import java.io.File
|
||||
import java.security.SecureRandom
|
||||
@@ -191,6 +192,7 @@ suspend fun Application.configureSecurity() {
|
||||
dependencies {
|
||||
provide<OidcProvider> { keycloakIdentity }
|
||||
provide<KeycloakSession> { keycloakSession }
|
||||
provide<Sessions> { Sessions() }
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user