是否可以在 playframework 中实现类似的装饰器(来自 django)?
@permission_required('polls.can_vote')
def my_view(request):
return HttpResponse('Ok')
是否可以在 playframework 中实现类似的装饰器(来自 django)?
@permission_required('polls.can_vote')
def my_view(request):
return HttpResponse('Ok')
如果您查看 Play 的官方文档,那么他们有一些处理 Security的示例。
快速调整示例代码以满足您的需求:
def permissionNeeded(group: String)(f: User=> Request[AnyContent] => Result) = withAuth { username => implicit request =>
UserDao.findOneByUsername(username).flatMap { user =>
PermissionDao.hasPermission(user, group).map {
permissionedUser => f(permissionedUser)(request)
}
}.getOrElse(onUnauthorized(request))
}
示例控制器方法如下所示:
def user() = permissionNeeded("polls.can_vote") { user => implicit request =>
val username = user.username
Ok(html.user(user))
}
如果您想使用注释,那么您必须研究AspectJ 和 Scala。