【问题标题】:Permissions as in djangodjango 中的权限
【发布时间】:2013-11-11 23:48:47
【问题描述】:

是否可以在 playframework 中实现类似的装饰器(来自 django)?

@permission_required('polls.can_vote')
def my_view(request):
   return HttpResponse('Ok')

【问题讨论】:

    标签: django scala authentication playframework authorization


    【解决方案1】:

    如果你看一下 Play 的官方文档,比他们有几个examples for handling 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 and Scala

    【讨论】:

      猜你喜欢
      • 2016-11-10
      • 2012-02-18
      • 2014-10-07
      • 2017-10-16
      • 2012-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多