2017-02-03 4 views
1

Я пытаюсь определить пользовательский виджет (специально созданные стили Кассиуса) для формы электронной почты. Email Auth плагин разоблачить обработчики по умолчанию дляПользовательский виджет для входа в систему электронной почты в Yesod

  • registerHandler
  • forgotPasswordHandler
  • setPasswordHandler

(https://www.stackage.org/haddock/lts-7.18/yesod-auth-1.4.15/Yesod-Auth-Email.html#g:5)

Но нет ни одного обработчика входа, который, кажется, по умолчанию виджет определяется в неэкспортируемой функции emailLoginHandler здесь: https://www.stackage.org/haddock/lts-7.18/yesod-auth-1.4.15/src/Yesod.Auth.Email.html#emailLoginHandler

Хотелось бы иметь login.hamlet и login.cassius в templates/. Как я мог это сделать?

+0

Я не помню детали из этого модуля, но из вашего описания он выглядит как недосмотр в пакете yesod-auth, и мы должны просто добавить функцию как метод в класс типа. –

+0

Недавно я добавил поддержку JSON модулю электронной почты Auth. Таким образом, вы можете использовать это как обходной путь на данный момент. – Sibi

+0

Yesod-Auth определяет 'loginHandler', по-видимому, и говорит:« Переопределить, если вам нужны модные виджеты, дополнительные функции или полностью настраиваемая страница. », Но если я создаю новый обработчик и виджет, ему нужна форма с вводом электронной почты и паролей, но не уверен, что делать с этим вводом после этого. –

ответ

1

В настоящий момент не было никакого способа достичь этого, поэтому я просто написал кучу хакерских JS в default-layout.julius, чтобы модифицировать DOM на лету всякий раз, когда найдены правильные элементы и добавляются атрибуты CSS.

Но теперь yesod-auth экспорта пакета emailLoginHandler (here) и defaultEmailLoginHandler, а так что теперь легко модифицировать его так же, как и другие обработчики по умолчанию в модуле.

 Смежные вопросы

  • Нет связанных вопросов^_^