Я пытаюсь написать страницу editUser с помощью плагина Secure Social, реализованного в приложении Play Framework. У меня возникли проблемы с регистрацией после изменения имени пользователя. Проблема возникает, когда я нажимаю кнопку отправки для формы editUser после изменения имени пользователя. Он переходит на страницу входа и говорит: «Вам нужно войти в систему, чтобы получить доступ к этой странице». Желаемое поведение - перенаправить на страницу editUser без необходимости переустройства. В базе данных все успешно обновляется. Так что это работает, он больше не вошел в систему.Как обновить имя пользователя securesocial после создания пользователя
Ниже приведен мой метод контроллера для моего «User» контроллера для POST обновления пользователя.
Если кто-то может помочь мне с этим, мы будем признательны. Благодарю.
// The form uses the following case class
case class AccountInfo(userName: String, firstName: String, lastName: String, email: Option[String])
def update(username: String) = SecuredAction { implicit request =>
this.editAccountForm.bindFromRequest.fold (
hasErrors = { info =>
Redirect(routes.Users.edit()).flashing(Flash(editAccountForm.data) +
("error" -> Messages("validation.errors")))
},
success = { info =>
DB.withSession { implicit s: Session =>
val uid = User.currentUser(request.user.id.id,providerId).get.uid
User.update(uid, info, providerId)
}
val message = Messages("user.update.success")
Redirect(routes.Users.edit()).flashing("success" -> message)
.withCookies(request.cookies.get("id").get)
}
)
}
Спасибо за ваш ответ Хорхе. Я попробовал это. Я обновил свойства, чтобы отразить изменения в новом securesocial update. Это не сработало. Я поместил кодовый блок непосредственно перед перенаправлением (routes.Users.edit()). Мигает (сообщение «success» ->). Любая идея, что происходит? Благодаря! – danielbh
ОК, наконец, получил это! Еще раз спасибо! – danielbh