4

我正在网上浏览以查找某种教程,但找不到它。我想我可以使用securesocial提供的twitter示例

例子:

def onlyAdmin = SecuredAction(WithAuth("admin")) { implicit request =>
      Ok("You could see this since you are admin")
}

case class WithAuth(role: String) extends Authorization {
  def isAuthorized(user: Identity) = {
val existingDbUser = User.findUserByProviderUserId(user)
    existingDbUser.hasRole(role)
}

User.findUserByProviderUserId(user)调用数据库来查找存储的用户及其角色。我不希望每次都调用 db 并使用Identity.

你会如何解决这个问题?

4

1 回答 1

2

那将是正确的做法。您可以从 UserService.save() 方法返回您自己的模型的实例(只要它实现身份)。这将允许您返回您的 User 对象,然后直接运行 user.hasRole(role) 而无需再次查询数据库。但是查询需要在某个时候完成。

于 2013-03-26T00:44:34.970 回答