Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions app/controllers/Auth.scala
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,11 @@ final class Auth(
Firewall:
def redirectTo(url: String) = if HTTPRequest.isXhr(ctx.req) then Ok(s"ok:$url") else Redirect(url)
val referrer = get("referrer").filterNot(env.web.referrerRedirect.sillyLoginReferrers)
val isRemember = api.rememberForm.bindFromRequest().value | true
bindForm(api.loginForm)(
err =>
negotiate(
Unauthorized.page(views.auth.login(err, referrer)),
Unauthorized.page(views.auth.login(err, referrer, isRemember)),
Unauthorized(doubleJsonFormErrorBody(err))
),
(login, pass) =>
Expand All @@ -114,7 +115,7 @@ final class Auth(
negotiate(
err.errors match
case List(FormError("", Seq(err), _)) if is2fa(err) => Ok(err)
case _ => Unauthorized.page(views.auth.login(err, referrer))
case _ => Unauthorized.page(views.auth.login(err, referrer, isRemember))
,
Unauthorized(doubleJsonFormErrorBody(err))
)
Expand All @@ -133,8 +134,7 @@ final class Auth(
case Some(u) =>
lila.mon.security.login.attempt(isEmail, stuffing = stuffing, result = true)
env.user.repo.email(u.id).foreach { _.foreach(garbageCollect(u)) }
val remember = api.rememberForm.bindFromRequest().value | true
authenticateUser(u, remember, Some(redirectTo))
authenticateUser(u, isRemember, Some(redirectTo))
)
}
)
Expand Down
9 changes: 7 additions & 2 deletions modules/web/src/main/ui/AuthUi.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import ScalatagsTemplate.{ *, given }
final class AuthUi(helpers: Helpers):
import helpers.{ *, given }

def login(form: Form[?], referrer: Option[String])(using Context) =
def login(form: Form[?], referrer: Option[String], isRememberMe: Boolean = true)(using Context) =
def addReferrer(url: String): String = referrer.fold(url)(addQueryParam(url, "referrer", _))
Page(trans.site.signIn.txt())
.js(esmInit("bits.login", "login"))
Expand All @@ -36,7 +36,12 @@ final class AuthUi(helpers: Helpers):
formFields(form("username"), form("password"), none, register = false),
form3.submit(trans.site.signIn(), icon = none),
label(cls := "login-remember")(
input(name := "remember", value := "true", tpe := "checkbox", checked),
input(
name := "remember",
value := "true",
tpe := "checkbox",
isRememberMe.option(checked)
),
trans.site.rememberMe()
)
),
Expand Down