Как настроить представления SecureSocial 3.0?

Я прочитал это вопрос

У меня такая же реализация. Мало того, что не работает, так еще и в отладке я даже никогда не ввожу этот код!

object MyRuntimeEnvironment extends RuntimeEnvironment.Default[BasicUser] {
    override val userService: UserService[BasicUser] = new SlickUserService
    override lazy val authenticatorService: AuthenticatorService[BasicUser] = new AuthenticatorService[BasicUser](
      new CookieAuthenticatorBuilder[BasicUser](new SlickAuthenticatorStore, idGenerator),
      new HttpHeaderAuthenticatorBuilder[BasicUser](new SlickAuthenticatorStore, idGenerator)
    )
    override lazy val viewTemplates: ViewTemplates = new CustomTemplatesController(this)

}

а также

class CustomTemplatesController(env: RuntimeEnvironment[_]) extends ViewTemplates {
  implicit val implicitEnv = env

  override def getLoginPage(form: Form[(String, String)],
                            msg: Option[String] = None)(implicit request: RequestHeader, lang: Lang): Html = {
    //securesocial.views.html.login(form, msg)(request, lang, env)
    views.html.custom_login(form, msg)(request, lang, env)
  }

  override def getSignUpPage(form: Form[RegistrationInfo], token: String)(implicit request: RequestHeader, lang: Lang): Html = {
    securesocial.views.html.Registration.signUp(form, token)(request, lang, env)
  }
}

Я предполагаю, что мой единственный оставшийся выбор - скопировать контроллеры вставки из кода secureSocial github и изменить шаблоны, называемые...

Есть идеи ?


person user2346536    schedule 27.07.2015    source источник
comment
Вы уверены, что передаете пользовательскую среду своим контроллерам?   -  person Jorge    schedule 30.11.2015
comment
Вероятно, прямо на месте, но после вопроса я сделал пользовательский вход OAUTH2 в Facebook. : D Надеюсь, это поможет кому-то еще.   -  person user2346536    schedule 30.11.2015


Ответы (1)


Вам нужно указать игровой инфраструктуре загрузить конфигурацию вашей среды. Обычно это делается путем создания модуля (при условии, что MyRuntimeEnvironment определен в пакете с именем Service):

package modules;

import com.google.inject.AbstractModule;
import securesocial.core.RuntimeEnvironment;
import service.MyRuntimeEnvironment;

public class EnvironmentModule extends AbstractModule{

    @Override
    protected void configure() {
        MyRuntimeEnvironment environment = new MyRuntimeEnvironment();
        bind(RuntimeEnvironment.class).toInstance(environment);
    }


}

В вашем application.conf:

play.modules.enabled += "modules.EnvironmentModule"

Это должно запустить вашу настроенную конфигурацию среды и загрузить ваши пользовательские шаблоны.

person MojoJojo    schedule 11.02.2016