don't require email for signup on dev environment
parent
b1818ec31a
commit
fc4131d0d0
|
@ -118,8 +118,13 @@ object Auth extends LilaController {
|
|||
UserRepo.create(data.username, data.password, email.some, ctx.blindMode, none)
|
||||
.flatten(s"No user could be created for ${data.username}")
|
||||
.map(_ -> email).flatMap {
|
||||
case (user, email) => env.emailConfirm.send(user, email) inject
|
||||
Redirect(routes.Auth.checkYourEmail(user.username))
|
||||
case (user, email) => env.emailConfirm.send(user, email) >> {
|
||||
if (env.emailConfirm.effective)
|
||||
Redirect(routes.Auth.checkYourEmail(user.username)).fuccess
|
||||
else api.saveAuthentication(user.id, ctx.mobileApiVersion) map { sessionId =>
|
||||
Redirect(routes.User.show(user.username)) withCookies LilaCookie.session("sessionId", sessionId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
api = apiVersion => forms.signup.mobile.bindFromRequest.fold(
|
||||
|
|
|
@ -237,6 +237,7 @@ security {
|
|||
secret = "???"
|
||||
}
|
||||
email_confirm {
|
||||
enabled = false
|
||||
mailgun = ${mailgun}
|
||||
secret = "???"
|
||||
}
|
||||
|
|
|
@ -6,12 +6,32 @@ import com.roundeights.hasher.{ Hasher, Algo }
|
|||
import play.api.libs.ws.{ WS, WSAuthScheme }
|
||||
import play.api.Play.current
|
||||
|
||||
final class EmailConfirm(
|
||||
trait EmailConfirm {
|
||||
|
||||
def effective: Boolean
|
||||
|
||||
def send(user: User, email: String): Funit
|
||||
|
||||
def confirm(token: String): Fu[Option[User]]
|
||||
}
|
||||
|
||||
object EmailConfirmSkip extends EmailConfirm {
|
||||
|
||||
def effective = false
|
||||
|
||||
def send(user: User, email: String) = UserRepo setEmailConfirmed user.id
|
||||
|
||||
def confirm(token: String): Fu[Option[User]] = fuccess(none)
|
||||
}
|
||||
|
||||
final class EmailConfirmMailGun(
|
||||
apiUrl: String,
|
||||
apiKey: String,
|
||||
sender: String,
|
||||
baseUrl: String,
|
||||
secret: String) {
|
||||
secret: String) extends EmailConfirm {
|
||||
|
||||
def effective = true
|
||||
|
||||
def send(user: User, email: String): Funit = tokener make user flatMap { token =>
|
||||
val url = s"$baseUrl/signup/confirm/$token"
|
||||
|
|
|
@ -33,6 +33,7 @@ final class Env(
|
|||
val EmailConfirmMailgunSender = config getString "email_confirm.mailgun.sender"
|
||||
val EmailConfirmMailgunBaseUrl = config getString "email_confirm.mailgun.base_url"
|
||||
val EmailConfirmSecret = config getString "email_confirm.secret"
|
||||
val EmailConfirmEnabled = config getBoolean "email_confirm.enabled"
|
||||
val PasswordResetMailgunApiUrl = config getString "password_reset.mailgun.api.url"
|
||||
val PasswordResetMailgunApiKey = config getString "password_reset.mailgun.api.key"
|
||||
val PasswordResetMailgunSender = config getString "password_reset.mailgun.sender"
|
||||
|
@ -74,12 +75,14 @@ final class Env(
|
|||
|
||||
lazy val disconnect = store disconnect _
|
||||
|
||||
lazy val emailConfirm = new EmailConfirm(
|
||||
apiUrl = EmailConfirmMailgunApiUrl,
|
||||
apiKey = EmailConfirmMailgunApiKey,
|
||||
sender = EmailConfirmMailgunSender,
|
||||
baseUrl = EmailConfirmMailgunBaseUrl,
|
||||
secret = EmailConfirmSecret)
|
||||
lazy val emailConfirm: EmailConfirm =
|
||||
if (EmailConfirmEnabled) new EmailConfirmMailGun(
|
||||
apiUrl = EmailConfirmMailgunApiUrl,
|
||||
apiKey = EmailConfirmMailgunApiKey,
|
||||
sender = EmailConfirmMailgunSender,
|
||||
baseUrl = EmailConfirmMailgunBaseUrl,
|
||||
secret = EmailConfirmSecret)
|
||||
else EmailConfirmSkip
|
||||
|
||||
lazy val passwordReset = new PasswordReset(
|
||||
apiUrl = PasswordResetMailgunApiUrl,
|
||||
|
|
Loading…
Reference in New Issue