Liftでログインしているユーザーのみ閲覧可能にする

User.loggedIn_? ってのを使う。

ページ全体のアクセス制御をしたい場合はLiftのMLのこちら(英語)にあるように、Boot.scalaでMenuをいじればいいらしい。

ページの一部分だけの場合、自分はsnippet内でやった。例えばログインしているユーザーだけにテキストボックスを表示させる場合、以下のようにした(Getting Startedのコードの改造)。

import code.model._ //Userクラスを使うので
  def render =
    if(User.loggedIn_?) {
      bind("chat", // the namespace for binding
         "line" -> lines _, // bind the function lines
         "input" -> SHtml.text("", s => ChatServer ! s))
    } else {
      bind("chat", // the namespace for binding
         "line" -> lines _, // bind the function lines
         "input" -> "")
    }

あまりScalaっぽくないコードかもしれないけど、まぁ初心者と言うことで。

環境

  • Scala 2.8.0
  • Lift 2.1

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です