![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 11.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Tworze prosty formularz rejestracyjny dla strony, aby dokonać rejestracji wystarczy podać login i email. Formularz rozszerza sfGuardUserForm. Ponieważ założenie jest takie, że użytkownik sam nie ustanawia sobie na początku hasła to jest mu ono generowane i zapisywane do bazy.
... ale to niedziała. Niedziała w tym sensie, że setPassword() zapisuje przekazane hasło, tak jak zostało ono podane (niezakodowane), do bazy. Jak widać najpierw dane z formularza są zapisywane do bazy (czyli login i hasło), a następnie jest podawane jeszcze hasło i dodtkowy zapis. Aby nie było generatePassword() zwraca nam jakies losowe hasło (na 100%) w dalszej czesci kodu jest wrzucona implementacja wysylania maila z haslem i dochodzi mail z hasłem. Pytanie jest takie jak poprawnie wykonywać zmienę hasła użytkownika ? Wiem że zwracany $user to obiekt klasy sfGuardUser < PluginsfGuardUser < BasesfGuardUser < sfDoctrineRecord i nigdzie po drodze niema statycznie zaimplementowanej metody setPassword(), czyli domyślnie jest to tylko najzwyklejsza zmiana wlasciwosci obiektu przez Doctrine (a nie plugin sfDoctrineGuardPlugin). Sprawdzałem też czy nie ma tej funkcjonalnosci (zapisu zaszyfrowanego hasla) w sfGuardSecurityUser ale tam jest dokladnie to co sam robie
Dalej szukałem czy może formularz pluginu nie robi machinacji i nie ustawia poprawnie hasła przy zapisie, czyli klasa [b]sfGuardUserForm[b] < PluginsfGuardUserForm < BasesfGuardUserForm < BasesfGuardUserForm < BaseFormDoctrine Ogólnie odpowiedz jest taka, że nie. Czyli plugin który ma być ułatwieniem i powinien posiadać pewną określoną funkcjonalność na starcie wogóle jej nie posiada ? Pola w bazie z algorymem kodowania oraz na sól są, a hasło zawsze niezakodowane. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Cytat Aby nie było generatePassword() zwraca nam jakies losowe hasło (na 100%) w dalszej czesci kodu jest wrzucona implementacja wysylania maila z haslem i dochodzi mail z hasłem. Ten kawałek zrozumiałem tak, że wygenerowane hasło dochodzi mailem, ale też te same hasło zapisujesz do bazy - co Ci nie odpowiada. Cytat Wiem że zwracany $user to obiekt klasy sfGuardUser < PluginsfGuardUser < BasesfGuardUser < sfDoctrineRecord i nigdzie po drodze niema statycznie zaimplementowanej metody setPassword(), czyli domyślnie jest to tylko najzwyklejsza zmiana wlasciwosci obiektu przez Doctrine (a nie plugin sfDoctrineGuardPlugin). A jednak jest. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 11.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
U mnie ta klasa wygląda dokłądnie tak
Plugin instalowałem za pomocą "symfony install:plugin" ale widzę, że nie ma sensu temu narzędziu ufać. Wyjaśnione, dzięki wielkie |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 22:35 |