39 lines
983 B
Kotlin
39 lines
983 B
Kotlin
package be.vandewalleh.controllers.base
|
|
|
|
import be.vandewalleh.services.UserService
|
|
import io.ktor.application.ApplicationCall
|
|
import io.ktor.auth.UserIdPrincipal
|
|
import io.ktor.auth.authenticate
|
|
import io.ktor.auth.principal
|
|
import io.ktor.routing.Route
|
|
import io.ktor.routing.Routing
|
|
import io.ktor.routing.route
|
|
import org.kodein.di.Kodein
|
|
import org.kodein.di.generic.instance
|
|
|
|
abstract class AuthCrudController(
|
|
private val path: String,
|
|
override val kodein: Kodein
|
|
) :
|
|
KodeinController(kodein) {
|
|
|
|
private val userService by instance<UserService>()
|
|
|
|
fun ApplicationCall.userEmail(): String =
|
|
this.principal<UserIdPrincipal>()!!.name
|
|
|
|
fun ApplicationCall.userId(): Int =
|
|
userService.getUserId(userEmail())!!
|
|
|
|
abstract fun Routing.registerAuthRoutes()
|
|
|
|
override fun Routing.registerRoutes() {
|
|
authenticate {
|
|
route(path) {
|
|
this@registerRoutes.registerAuthRoutes()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|