![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 5.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Przy użyciu pluginu sfDoctrineGuard utworzyłem sobie system użytkowników (rejestracja, logowanie itp). Niby wszystko działa jak należy ale jedna rzecz cały czas nie daje mi spokoju... Dokładniej rzecz ujmując "nie podobają" mi się komunikaty o błędach podczas logowania. Dodałem sobie do /lib/form/doctrine plik sfGuardFormSignin.class.php, tam ustawiłem sobie polskie komunikaty o błędach i wszystko byłoby OK gdyby nie brak komunikatu o tym że konto jest nieaktywne. Podejrzałem sobie co zawiera metoda sfGuardValidatorUser znajdująca się w pliku sfGuardValidatorUser.class.php i ku mojemu zdziwieniu, sprawdzanie czy konto jest aktywne czy też nie, wykonywane jest wraz ze sprawdzaniem poprawności hasła. Skutkuje to tym, że pomimo iż dane podane przez użytkownika podczas logowania są poprawne a jego konto jest nieaktywne, zwracany jest ogólny błąd o niepoprawności loginu/hasła. W jaki sposób należałoby poprawnie zwrócić błąd o nieaktywnym koncie? Domyślam się że należałoby nadpisać metodę doClean z pliku sfGuardValidatorUser.class.php, oraz że ingerencja w pliki pluginu to niezbyt dobry pomysł... Gdzie więc należałoby umieścić plik ze zmodyfikowaną metodą doClean |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Zazwyczaj staram się odtworzyć strukturę frameworka czy pluginu w swoim projekcie. W związku z czym umieściłbym to w lib/validator/GuardValidatorUser.class.php.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 5.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
destroyerr - Dziękuje - ta ścieżka faktycznie jest logiczna.
Ok no to jeszcze jedno pytanko mam do tego tematu ![]() W jaki sposób poprawnie zwrócić taki error/wyjątek? zrobiłem coś takiego: nadpisałem metode configure:
no i w odpowiednim miejscu dodałem sprawdzanie czy konto jest aktywne:
Ale otrzymałem taki oto błąd: Kod sfGuardValidatorUser does not support the following error code: 'inactive'. Co oznacza ten błąd - WIEM, ale niestety moja wiedza na temat SYMFONY jest niestety nadal zbyt mała, abym wiedział jak sprawić, by moj "kod błędu" został przyjęty. Wszelkie pomysły/sugestie tu bardzo mile widziane. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 5.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
destroyerr raz jeszcze dziękuje za pomoc.
Nie wiem jakim cudem ta metoda umknęła mojej uwadze - dwa razy czytałem opis sfValidatorBase ![]() ![]() Niestety, nadal coś nie działa tak jak powinno ![]() Ciągle otrzymuje tylko komunikat o nieprawidłowym loginie lub haśle. Kod metody doClean wygląda tak:
Domyślam się jedynie, że linia 42 wysyła ogólny error z kodem "invalid"... Jak sprawić żeby błąd o nieaktywnym koncie został wyświetlony? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Najprawdopodobniej wyjątek z Twoim błędem nie jest w ogóle rzucany. Po kodzie wszystko wygląda ok.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 1 Dołączył: 5.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chyba sobie jakoś poradziłem z tym problemem. Zastanawiam się tylko czy zrobiłem to we właściwy sposób.
W /lib/form/doctrine utworzyłem plik: sfGuardFormSignin.class.php
W /lib/validator utworzyłem plik: sfGuardValidatorUserCustom.class.php
Nie licząc faktu ze takie rozwiązanie działa - Czy jest ono poprawne i ma sens? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:36 |