Scala 你能给动作添加参数吗?

Scala 你能给动作添加参数吗?,scala,playframework,Scala,Playframework,假设我有一个操作,我希望它可以选择性地强制https 如何向自定义操作添加参数 import play.api.mvc._ def onlyHttps[A](action: Action[A]) = Action.async(action.parser) { request => request.headers.get("X-Forwarded-Proto").collect { case "https" => action(request) } getOrElse

假设我有一个操作,我希望它可以选择性地强制https

如何向自定义操作添加参数

import play.api.mvc._

def onlyHttps[A](action: Action[A]) = Action.async(action.parser) { request =>
  request.headers.get("X-Forwarded-Proto").collect {
    case "https" => action(request)
  } getOrElse {
    Future.successful(Forbidden("Only HTTPS requests allowed"))
  }
}
所以在我的控制器中:

def index = onlyHttps(false) {
  // ..
}
另一个方面是我想检查当前登录的用户是否具有特定级别的权限,因此我想将权限类型作为参数传递给我的自定义操作。

只需添加:

def onlyHttps[A](limitToHttps: Boolean)(action: Action[A]) = /* 
    Your implementation here.  You can access `limitToHttps` here. */