I want to redirect to a certain page after a user logs in to my Scala Lift web application. I found this answer which doesn't seem to work:
In my User object (which is a MetaMegaProtoUser) I override the following method like so:
object User extends User with MetaMegaProtoUser[User] {
override def loginFirst = If(
loggedIn_? _,
() => {
import net.liftweb.http.{RedirectWithState, RedirectState}
val uri = Full("/myPicks")
println("login sucessful .. redirecting!..")
RedirectWithState(
loginPageURL,
RedirectState( ()=>{loginRedirect.set(uri)})
)
}
)
}
This doesn’t work. Any ideas?
loginFirstdefines a LocParam which can be used for specifying where to send the user if they are not logged in. It is used in conjunction with SiteMap.For the page you want to protect, you can modify that entry like:
Menu("Protected Page") / "protected" >> User.loginFirst
That should test whether the user is logged in when you access
/protectedand, if they are not, set theloginRedirectSessionVarand display the login form. On a successful login, you should be redirected to the page specified inloginRedirect.I believe you can also just use:
override def homePage = "/myPicks"if you want to set a default page to redirect to.