2013-08-10 6 views
1

사용자가 스칼라 리프트 웹 애플리케이션에 로그인 한 후 특정 페이지로 리디렉션하려고합니다.로그인 후 스칼라 리디렉션 사용자

을 내 User 객체의 (a MetaMegaProtoUser이다) 나는 다음과 같은 방법과 같이 오버라이드 (override) :이 작동하지 않습니다

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)}) 
    ) 
    } 
) 


} 

나는 작동하지 않는 것이 대답을 발견했다. 어떤 아이디어?

답변

1

loginFirst은 사용자가 로그인하지 않은 경우 사용자를 보낼 위치를 지정하는 데 사용할 수있는 LocParam을 정의합니다.이 정보는 SiteMap과 함께 사용됩니다. 사용자가 있는지 여부를 테스트해야

메뉴/>>

User.loginFirst

을 "보호"("보호 된 페이지") :

보호 할 페이지를 참조하십시오

, 당신은 같은 해당 항목을 수정할 수 있습니다 /protected에 액세스 할 때 로그인하고 그렇지 않은 경우 loginRedirectSessionVar을 설정하고 로그인 양식을 표시하십시오. 로그인에 성공하면 loginRedirect에 지정된 페이지로 리디렉션되어야합니다.

리디렉션 할 기본 페이지를 설정하려면 override def homePage = "/myPicks"을 사용할 수도 있습니다.

+0

내 사용자 엔티티에 override def homePage = "/ myPicks"를 추가하면 속임수가 적용됩니다! 감사. –