我是playframework的新手,我使用的是2.2.2。
我正在检查zentask样本,但有人可以告诉我如果用户登录后如何查看?
在main.scala.html我的链接列表中。
<ul>
<li><a href="@routes.Application.newBlogpost">New blogpost</a></li>
<li><a href="@routes.Authentication.login">Login</a></li>
<li><a href="@routes.Authentication.logout">Logout</a></li>
</ul>
我想要的是,当用户登录时,会显示注销链接。
我的application.scala看起来像这样:
def index = Action {
Ok(views.html.index(BlogPost.all(), blogpostForm))
}
我可以检查是否允许用户访问以创建新的博客帖子:
def newBlogpost = IsAuthenticated { username => _ =>
User.findByUsername(username).map { user =>
Ok(views.html.blogpost.item(blogpostForm))
}.getOrElse(Forbidden)
}
那么main.scala.html中最简单的方法是检查用户是否登录并根据该链接显示正确的链接?
答案 0 :(得分:1)
您可以将会话传递给您的html模板,并在那里检查是否已定义用户:
@()(implicit session: Session)
<ul>
@session.get("user").map { user =>
<li><a href="@routes.Application.newBlogpost">New blogpost</a></li>
<li><a href="@routes.Authentication.logout">Logout</a></li>
}.getOrElse{
<li><a href="@routes.Authentication.login">Login</a></li>
}
</ul>
注意:您必须在操作中将请求标记为隐式。