я начал настраивать securesocial для собственного использования и столкнулись с одной проблемой во время настройки моих взглядов - я пытаюсь сделать постоянный шаблон панели инструментов в верхней части окна с текстом, как:Securesocial - получить пользовательские данные в пользовательской точки зрения
Welcome,
@if(user != null) {
@user.firstName @user.lastName
} else {
@Messages("Guest")
}
Эта панель генерируется в пользовательском главном виде:
@(title: String, user: securesocial.core.Identity = null)(content: Html)
который вызывается из кода (index.scala.html пример):
@main("App test",user)
У меня возникает проблема при попытке использовать индивидуальные представления - особенно passwordChange.scala.html
. Это представление вызывается стандартным контроллером, предоставляемым securesocial (PasswordChange
), который затем передает управление моему собственному плагину (MyViews
, который имеет простую реализацию представлений рендеринга и расширяет TemplatesPlugin
), не имеет никакой информации о контексте пользователя - так что даже если пользователь вошел в систему, во время смены пароля на панели инструментов отобразится «Добро пожаловать, гость», и в соответствующих меню будут отображаться, например, «Вход» и «Регистрация», несмотря на то, что пользователь вошел в систему во время смены пароля.
Может ли кто-нибудь предоставить мне решение для передачи информации о пользователе в мой пользовательский вид (желательно без перезаписи защищенных со стороны встроенных контроллеров)?
Пользователь «null», и это проблема. Я не знаю, как передать пользовательский экземпляр в пользовательский вид, потому что он вызывается из контроллера, предоставленного securesocial. Если быть точным, это вызывает последовательность: PasswordChange.page (встроенный контроллер) -> MyViews.getPasswordChangePage (мое собственное создание шаблона обработки плагинов) -> passwordChange.scala.html (мой пользовательский шаблон) Что я пытаясь сделать, это получить «пользовательский» экземпляр и передать его в шаблон, хотя я не хочу (если это возможно) модифицировать встроенный класс контроллера. – SzybkiSasza