Po odeslání formuláře se neověří shoda nových hesel
- kiCkZ
- Člen | 153
Zdravim,
nevíte někdo proč se neověří shoda hesel u tohoto formuláře:
public function createComponentProfileForm() {
$form = new Form;
$form->addText('username','Přihlašovací jméno: ')
->setAttribute('class','admin-input')
->setValue($this->user->getIdentity()->username);
$form->addEmail('email','Email: ')
->setAttribute('class','admin-input')
->setValue($this->user->getIdentity()->email);
$form->addPassword('oldPassword', 'Stávající heslo: ')
->addRule(Form::FILLED,'Zadejte vaše staré heslo.')
->setAttribute('class', 'admin-input')
->setAttribute('placeholder', 'staré heslo');
$form->addPassword('newPassword', 'Nové heslo: ')
->addRule(Form::FILLED, 'Zadejte vaše nové heslo.')
->setAttribute('class', 'admin-input')
->setAttribute('placeholder', 'nové heslo');
$form->addPassword('passwordVerify', 'Potvrzení hesla: ')
->setRequired('Zadejte heslo ještě jednou pro kontrolu.')
->setAttribute('class', 'admin-input')
->setAttribute('placeholder', 'Potvrzení nového hesla')
->addRule(Form::EQUAL,'Vaše vyplněné heslo se neshoduje.', $form['newPassword']);
$form->addSubmit('send','Uložit')
->setAttribute('class','admin-btn');
$form->onSuccess[] = [$this,'profileFormSucceeded'];
return $form;
}
Ještě bych se chtěl zeptat, zda ověřování hesla s DB má být v MODELU nebo ve funkci v presenteru (profileFormSucceeded).
Díky moc
Editoval kiCkZ (28. 7. 2017 10:25)
- igor.pocta
- Člen | 100
Máš tam Nette Forms JS? Máš formulář z Nette\Application\UI\Form?
Ověření hesla by jsi měl mít určitě mimo presenter. Např. v sanbdoxu je UserManager, který má metodu authenticate a celý je jako samostatná služba
Editoval igor.pocta (28. 7. 2017 10:33)
- kiCkZ
- Člen | 153
igor.pocta napsal(a):
Máš tam Nette Forms JS? Máš formulář z Nette\Application\UI\Form?
Ověření hesla by jsi měl mít určitě mimo presenter. Např. v sanbdoxu je UserManager, který má metodu authenticate a celý je jako samostatná služba
Mam v hlavičce toto:
use Nette,
Nette\Application\UI\Form;
Editoval kiCkZ (28. 7. 2017 10:37)
- David Matějka
- Moderator | 6445
chapu spravne, ze se nevykona tohle
->addRule(Form::EQUAL,'Vaše vyplněné heslo se neshoduje.', $form['newPassword']);
a rovnou se zavola onSuccess?
- kiCkZ
- Člen | 153
David Matějka napsal(a):
chapu spravne, ze se nevykona tohle
->addRule(Form::EQUAL,'Vaše vyplněné heslo se neshoduje.', $form['newPassword']);
a rovnou se zavola onSuccess?
Přesně tak, prakticky to proběhne úplně v pořádku, ale ve formuláři
jsou hesla úplně jiná.
Takže validace se neprovede.
- David Matějka
- Moderator | 6445
zkusil jsem ten kod, co jsi poslal, a funguje bez problemu – validace se zavola. takze mas asi problem jinde.