[Warszawa-pm] [Catalyst] obsługa aktywacji użytkownika

Maciej Grzybek mashester w gmail.com
Nie, 2 Sty 2011, 03:23:33 PST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

W dniu 02.01.2011 10:54, Zbigniew Lukasiak pisze:
> Niestety już dawno się tym nie zajmowałem.   Może trzeba by po prostu
> dodać jedno sprawdzenie w kontrolerze (czy co tam obsługuje formularz
> login) - albo może użyć Realm (chociaż nigdy nie rozumiałem o co
> chodzi z tymi Realm i czym to się różni od roli).  Pytanie jest czy
> authenticate nie powinno zwracać jakiegoś kodu przyczyny albo coś.
> Problem jest ciekawy (kiedyś będę się musiał zmierzyć z napisaniem
> bibliotek do autentykacji w WebNano - więc jestem bardzo
> zainteresowany rozwiązaniem go) i proponowałbym wysłać to na listę
> Catalysta.
> 
> 
> 
> Pozdr.
> Zbyszek
> _______________________________________________
> Warszawa-pm mailing list
> Warszawa-pm w pm.org
> http://mail.pm.org/mailman/listinfo/warszawa-pm
> 

Realm? Wydaje mi się, że tego nie da się użyć przy tym problemie.
Wg mnie najrozsądniej byłoby, gdyby authenticate zwracało kod błędu, na
podstawie którego można byłoby wywnioskować co nie przypasowało do
usera, aby go zalogować.
W Catalyst Advent Calendar pisali o możliwości zrobienia czegoś takiego:

 sub login : Local {
     my ( $self, $c ) = @_;

     if ($c->authenticate( {
                              username =>
$c->request->params->{'username'},
                              password => $c->request->params->{'password'},
                              status => [ 'registered', 'active' ]
                           } )) {
        # display the login successful page here.
     } else {
        # display the 'try again' page here.
     }
 }

gdzie array pełni rolę tablicy ORów (wystarczy by dowolny z warunków był
spełniony), ale, jak wiadomo, nie jest to zadowalające, bo nie możemy
sprawdzić, czy logowanie wysypało się na sprawdzeniu username + password
czy na arrayu. Rozwiązaniem, które już byłoby zadowalające byłoby być
może zwrócenie, który z argumentów nie pasował. Tylko jak to sprawdzić?
Póki co na #catalyst @irc.perl.org nikt nie znalazł rozwiązania. ;)

Pozdrawiam,
Maciek Grzybek
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJNIGA1AAoJEJsau/Tq/KXReRUQAK/IEetkH9Bq02MxpocXyukp
M7ChAwNFCeOKU43yHXH00T5II0StojrO04sk4JhpMs/19A6DYdt+K07Hanzd4mAE
qnlcF6VW7QUXO7VDPhoFFkB+aXe/31fHX3lG7vS/TCzxka70RS++Bi5KVtxT9sdU
CVOnwr9g9Btstl02Blv4a4Fm6/3sOHG5mVeG31zbz5REXQZLcd8QOS2bzdLpw4z7
2xFVWYC7a2F4Un2KJ2Xc42FtfeR9X/SIFxfWte8xYVC/ysAuang3JBo7MH8jZgv6
huMEMdnGQzjw+xW4DdMoNiod+m/4o53/pamrtOgiWvApTJcwWqKXTcjOEmI94xCq
YOOG7dmQL56hLiBDeRWqfuy0GnoUgCXuiFCTcbtToUG4gtJqOcEGNfbJajhJmYc9
h8twCGK5oSEV2xQ7TLKwRnoxlE5lhQk6y9t+OlXg1XR2LYmNxX1mV80SHfrMigp9
IXvfV0/2JcJqxiMhRW6KrlutJid9pmWVrp5xMOsmFUezBgpeiBQg22b9N45Sb80j
eFg78IIwD4yNSyW23Ay4433klr6nkWi2ojq9pBJ7T2HTBUC+htf9RUdYGLLeHSdG
TxLV6gBZBwlyUriXECkyloIRxQwgToF7MnLuGFjTztr4yJkoasXZ+/gbNWlA2YAq
N/RNCfuIsAJtotPUelaN
=qz1L
-----END PGP SIGNATURE-----


Więcej informacji o liście Warszawa-pm