【问题标题】:Composing two ActionBuilders in Play在 Play 中组合两个 ActionBuilder
【发布时间】:2014-03-29 00:56:39
【问题描述】:

我有想要这样调用的控制器

def getSensitiveData = Authenticated.hasPermissions(Permissions.ADMIN).async { 
  implicit request =>
    Future.successful(Ok)
  }
}

像这样

def getLessSensitiveData = Authenticated.async { implicit request =>
  Future.successful(Ok)
}

其中 Authenticated 是一个 ActionBuilder,用于检查某些授权逻辑的请求。我希望 Authenticated 有一种方法,允许我向授权逻辑添加一些进一步的约束,或者理想情况下,在身份验证逻辑将用户从数据库中拉出之后,它会进一步检查以确保用户确实拥有我们期望的权限。

不幸的是,我被限制不使用包装的请求,但我想知道如何实现方法链接来更改调用块的默认行为,或者两个可能组成另一个动作。有什么想法吗?

【问题讨论】:

    标签: scala playframework-2.0


    【解决方案1】:

    好吧,我放弃了....ActionBuilders 似乎并不像看起来那么方便,但可以构建这样的方法

    def hasPermissions[A](permissions: Permissions*)(block: User => Future[SimpleResult]) (隐式请求:Request[A]):Future[SimpleResult]

    很简单,而且组合得很好,尽管你可能会发现自己有很多括号和缩进。

    【讨论】:

      猜你喜欢
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 2018-07-04
      • 2022-09-27
      • 1970-01-01
      相关资源
      最近更新 更多