我有控制器,我想这样称呼
def getSensitiveData = Authenticated.hasPermissions(Permissions.ADMIN).async {
implicit request =>
Future.successful(Ok)
}
}
并且喜欢这个
def getLessSensitiveData = Authenticated.async { implicit request =>
Future.successful(Ok)
}
其中Authenticated是一个ActionBuilder,用于检查某些授权逻辑的请求。我希望Authenticated有一个方法允许我向授权逻辑添加一些进一步的约束,或者理想情况下,在auth逻辑将用户拉出数据库后,它会进一步检查以确保用户实际拥有我们期望的权限。
不幸的是,我被限制为不使用包装请求,但我想知道如何实现方法链接来更改调用块的默认行为,或者两个可能组成另一个操作。有什么想法吗?
答案 0 :(得分:0)
好吧,我放弃了这个...... ActionBuilders看起来并不像他们看起来那么方便但是建立这样的方法
def hasPermissions [A](权限:权限*)(块:用户=>未来[SimpleResult]) (隐式请求:请求[A]):未来[SimpleResult]
虽然你可能会发现自己有很多括号和缩进,但它很容易编写得很好。