chybova hlaska pri prihlaseni uzivatele
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vosy
- Člen | 532
Ahoja mam formular se submit fci:
public function mainFormSubmitted(Form $form)
{
$presenter = $form->getPresenter();
try
{
$user = $presenter->getUser();
$values = $form->getValues();
if($values->remember)
{
$user->setExpiration('+30 days', FALSE);
}
$user->login($values->username, $values->password);
$presenter->flashMessage('Přihlášení proběhlo úspěšně jako "'.$user->identity->jmeno.'"', 'success');
$presenter->redirect('Dashboard:');
}catch(NS\AuthenticationException $e)
{
$form->addError($e->getMessage());
}
}
a authenticator
use Nette\Security as NS;
class Authenticator extends Nette\Object implements NS\IAuthenticator
{
private $admins;
function __construct(Nette\Database\Table\Selection $admins)
{
$this->admins = $admins;
}
public function authenticate(array $opt)
{
list($login, $password) = $opt;
$info = $this->admins->where('login', $login)->fetch();
if(!$info)
{
throw new NS\AuthenticationException('Uživatel "'.$login.'" nebyl nalezen');
}
problem je ze kdyz se prihlasim jako neznamy uzivatel tak se mi zobrazi cervena stranka s chybovou hlaskou Uzivatel XX nebyl nalezen.
ja bych totu chybu ocekaval uvnitr formulare a to z duvodu
}catch(NS\AuthenticationException $e)
{
$form->addError($e->getMessage());
}
- David Matějka
- Moderator | 6445
cervenou strankou myslis ladenku, jo?
mas v presenteru ten use
?
use Nette\Security as NS;
- vosy
- Člen | 532
ano myslim ladenku
presenter
use Nette\Application\UI\Form;
use Nette\Security as NS;
class LoginBoardPresenter extends BasePresenter
{
public $LoginFormFactory;
public function inject(LoginFormFactory $LoginFormFactory)
{
$this->LoginFormFactory = $LoginFormFactory;
}
public function startup()
{
parent::startup();
$this->session->start();
}
/* component factoriew */
protected function createComponentSignInForm()
{
$form = $this->LoginFormFactory->mainForm();
return $form;
}