Devise czy da się to zrobić

Dzisiaj wpadłem na pewien pomysł, który chciałbym wykorzystać przy projekcie i chciałbym się dowiedzieć czy jest to w ogóle możliwe z wykorzystaniem Devise
Chciałbym zrobić 2 formularze rejestracji, oraz rozróżnić co dzieje się dalej w zależności od tego kto jak się rejestrował.

  1. Użytkownik wchodzi na stronę, rejestruje się, wpisuje captcha, dostaje link do aktywacji konta, następnie loguje się i zostaje przekierowany na stronę do uzupełnienia danych
  2. Użytkownik wchodzi na stronę, wrzuca produkty do koszyka, przed dokonaniem zakupu następuje szybka rejestracja bez captchy i bez aktywacji konta, następnie jest przejście na stronę do uzupełnienia danych (inna niż w pkt 1) i kontynuowanie procesu zakupowego - realizacja płatności, user jest już aktywowany

Chcę coś takiego zrobić, ponieważ użytkownik i tak będzie musiał mieć konto w systemie aby dokonać zakupu a nie chce mu utrudniać życia w czasie pierwszego zakupu :).
Z tego co mi się wydaje to problem jest przy aktywacji konta, bo jak włączamy aktywację na maila to dla wszystkich, druga sprawa to czy będzie też jakiś problem z captcha i jak z tymi formularzami do rejestracji z wykorzystaniem CanCan.

Taka sytuacja :).

Napewno jest mozliwe w sorcery https://github.com/NoamB/sorcery

dzięki za info, jak okaże się, że z Devise jest to nie do zrobienia to przemyślę przejście na Sorcery

Raczej nie powinien to być większy problem. Jeśli tylko masz możliwość w jakiś sposób rozróżnić skąd user się rejestruje (np. jakiś accessor + hidden field w formie?), to reszta to już kwestia odpowiednich callbacków.

W danym przypadku możesz ręcznie usera aktywować na podstawie tej flagi jak i pominąć captche.

[quote=Sevin]Raczej nie powinien to być większy problem. Jeśli tylko masz możliwość w jakiś sposób rozróżnić skąd user się rejestruje (np. jakiś accessor + hidden field w formie?), to reszta to już kwestia odpowiednich callbacków.

W danym przypadku możesz ręcznie usera aktywować na podstawie tej flagi jak i pominąć captche.[/quote]
dzięki za podpowiedź, nie korzystałem jeszcze z callbacków także nawet nie wiedziałem, żeby wykorzystać je do tego celu :slight_smile: