Rename wrong naming SSO to Passwordless
This commit is contained in:
@@ -18,7 +18,7 @@ import fr.dcproject.component.auth.UserRepository
|
||||
import fr.dcproject.component.auth.jwt.JwtConfig
|
||||
import fr.dcproject.component.auth.routes.authLogin
|
||||
import fr.dcproject.component.auth.routes.authRegister
|
||||
import fr.dcproject.component.auth.routes.authSso
|
||||
import fr.dcproject.component.auth.routes.authPasswordless
|
||||
import fr.dcproject.component.auth.user
|
||||
import fr.dcproject.component.citizen.routes.changeMyPassword
|
||||
import fr.dcproject.component.citizen.routes.findCitizen
|
||||
@@ -196,7 +196,7 @@ fun Application.module(env: Env = PROD) {
|
||||
/* Auth */
|
||||
authLogin(get())
|
||||
authRegister(get())
|
||||
authSso(get())
|
||||
authPasswordless(get())
|
||||
/* Workgroup */
|
||||
getWorkgroups(get(), get())
|
||||
getWorkgroup(get(), get())
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.rabbitmq.client.ConnectionFactory
|
||||
import fr.dcproject.component.article.ArticleRepository
|
||||
import fr.dcproject.component.article.ArticleViewManager
|
||||
import fr.dcproject.component.article.ArticleVoter
|
||||
import fr.dcproject.component.auth.SsoManager
|
||||
import fr.dcproject.component.auth.PasswordlessAuth
|
||||
import fr.dcproject.component.auth.UserRepository
|
||||
import fr.dcproject.component.citizen.CitizenRepository
|
||||
import fr.dcproject.component.citizen.CitizenVoter
|
||||
@@ -136,8 +136,8 @@ val KoinModule = module {
|
||||
// Mailer
|
||||
single { Mailer(Configuration.sendGridKey) }
|
||||
|
||||
// SSO Manager for connection
|
||||
single { SsoManager(get<Mailer>(), Configuration.domain, get()) }
|
||||
// Used to send a connexion link by email
|
||||
single { PasswordlessAuth(get<Mailer>(), Configuration.domain, get()) }
|
||||
|
||||
single { Publisher(get(), get()) }
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@ import fr.dcproject.messages.Mailer
|
||||
import io.ktor.http.*
|
||||
|
||||
/**
|
||||
* Send an email to the citizen with a link to automatically connect
|
||||
* Send a connexion link by email
|
||||
*/
|
||||
class SsoManager(
|
||||
class PasswordlessAuth(
|
||||
private val mailer: Mailer,
|
||||
private val domain: String,
|
||||
private val citizenRepo: CitizenRepository
|
||||
@@ -27,7 +27,7 @@ class SsoManager(
|
||||
mailer.sendEmail {
|
||||
val token = citizen.user.makeToken()
|
||||
Mail(
|
||||
Email("sso@$domain"),
|
||||
Email("passwordless-auth@$domain"),
|
||||
"Connection",
|
||||
Email(citizen.email),
|
||||
Content("text/plain", generateContent(token, url))
|
||||
@@ -1,7 +1,7 @@
|
||||
package fr.dcproject.component.auth.routes
|
||||
|
||||
import fr.dcproject.component.auth.SsoManager
|
||||
import fr.dcproject.component.auth.routes.SsoRequest.Input
|
||||
import fr.dcproject.component.auth.PasswordlessAuth
|
||||
import fr.dcproject.component.auth.routes.PasswordlessRequest.Input
|
||||
import io.ktor.application.*
|
||||
import io.ktor.http.*
|
||||
import io.ktor.locations.*
|
||||
@@ -11,8 +11,8 @@ import io.ktor.routing.*
|
||||
import io.ktor.util.*
|
||||
|
||||
@KtorExperimentalLocationsAPI
|
||||
@Location("/sso")
|
||||
class SsoRequest {
|
||||
@Location("/auth/passwordless")
|
||||
class PasswordlessRequest {
|
||||
data class Input(val email: String, val url: String)
|
||||
}
|
||||
|
||||
@@ -21,12 +21,12 @@ class SsoRequest {
|
||||
*/
|
||||
@KtorExperimentalLocationsAPI
|
||||
@KtorExperimentalAPI
|
||||
fun Route.authSso(ssoManager: SsoManager) {
|
||||
post<SsoRequest> {
|
||||
fun Route.authPasswordless(passwordlessAuth: PasswordlessAuth) {
|
||||
post<PasswordlessRequest> {
|
||||
call.receive<Input>().run {
|
||||
try {
|
||||
ssoManager.sendEmail(email, url)
|
||||
} catch (e: SsoManager.EmailNotFound) {
|
||||
passwordlessAuth.sendEmail(email, url)
|
||||
} catch (e: PasswordlessAuth.EmailNotFound) {
|
||||
call.respond(HttpStatusCode.NotFound)
|
||||
}
|
||||
call.respond(HttpStatusCode.NoContent)
|
||||
|
||||
Reference in New Issue
Block a user