【问题标题】:Play Forms: Mapping the request.user from a Secured Action?播放表单:从安全操作映射 request.user?
【发布时间】:2013-02-25 21:39:57
【问题描述】:

当我使用 Play Forms 将请求映射到对象时,我希望能够接触到用户。为了让事情更复杂,我也使用 SecureSocial 框架,所以request.user 是一个securesocial.core.SocialUser。

下面的代码有问题,因为映射的doc 对象是一个不可变的案例类,所以我不能重新分配lender。如果可能的话,我宁愿保持不变性。

我是 Scala 菜鸟,所以不知道如何继续。

def create = SecuredAction() { implicit request =>
    models.Lendable.form.bindFromRequest.fold(
        errors => {
            BadRequest(errors.errorsAsJson)
        },
        doc => AsyncResult {
            // TODO: set the lender without mutating a val
            doc.lender = models.User.fromSocialUser(request.user)

            collection.insert(doc.copy()).map(_ => Ok)
        })
}

非常感谢您的帮助。

谢谢

【问题讨论】:

    标签: playframework-2.0 securesocial


    【解决方案1】:

    你可以这样:

    doc => AsyncResult {
         val toInsert = doc.copy(lender = models.User.fromSecureUser(request.user))
         collection.insert(toInsert).map(_ => Ok)
    }
    

    【讨论】:

    • 感谢您的帮助。没想到你能做到这一点
    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 2013-05-30
    • 1970-01-01
    • 2014-07-08
    相关资源
    最近更新 更多