From b446cf6173c760a2c8c9beb81896fe55f7bb910a Mon Sep 17 00:00:00 2001 From: Carbrex <95964955+Carbrex@users.noreply.github.com> Date: Wed, 14 Feb 2024 17:25:17 +0530 Subject: [PATCH] Redirect from login pages if already logged in --- app/controllers/Auth.scala | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/app/controllers/Auth.scala b/app/controllers/Auth.scala index 797756659889a..adbe3c4a0213e 100644 --- a/app/controllers/Auth.scala +++ b/app/controllers/Auth.scala @@ -74,14 +74,15 @@ final class Auth( def loginLang = LangPage(routes.Auth.login)(serveLogin) private def serveLogin(using ctx: Context) = NoBot: - val referrer = get("referrer") flatMap env.api.referrerRedirect.valid - val switch = get("switch") - referrer ifTrue ctx.isAuth ifTrue switch.isEmpty match - case Some(url) => Redirect(url) // redirect immediately if already logged in - case None => - val prefillUsername = lila.security.UserStrOrEmail(~switch.filter(_ != "1")) - val form = api.loginFormFilled(prefillUsername) - Ok.page(html.auth.login(form, referrer)).map(_.withCanonical(routes.Auth.login)) + RedirectToProfileIfLoggedIn: + val referrer = get("referrer") flatMap env.api.referrerRedirect.valid + val switch = get("switch") + referrer ifTrue ctx.isAuth ifTrue switch.isEmpty match + case Some(url) => Redirect(url) // redirect immediately if already logged in + case None => + val prefillUsername = lila.security.UserStrOrEmail(~switch.filter(_ != "1")) + val form = api.loginFormFilled(prefillUsername) + Ok.page(html.auth.login(form, referrer)).map(_.withCanonical(routes.Auth.login)) private val is2fa = Set("MissingTotpToken", "InvalidTotpToken") @@ -161,8 +162,9 @@ final class Auth( def signup = Open(serveSignup) def signupLang = LangPage(routes.Auth.signup)(serveSignup) private def serveSignup(using Context) = NoTor: - forms.signup.website.flatMap: form => - Ok.page(html.auth.signup(form)) + RedirectToProfileIfLoggedIn: + forms.signup.website.flatMap: form => + Ok.page(html.auth.signup(form)) private def authLog(user: UserName, email: Option[EmailAddress], msg: String) = lila.log("auth").info(s"$user ${email.fold("-")(_.value)} $msg")