Dodatecne prihlaseni uzivatele
- K3nny
- Člen | 3
Ahoj, resim takovy problem:
Prihlasuji uzivatele automaticky podle IP adresy (lokalni sit) a potrebuju udelat dodatecne prihlaseni pres jmeno/heslo kdyz si napr. bude chtit uzivatel zmenit osobni udaje. Mam problem s tim, ze kdyz tedy zobrazim formular na dodatecne prihlaseni a uzivatel zada spatne heslo, odhlasi to tu automaticky prihlasenou session protoze funkce login() nad Userem automaticky odhlasuje prihlasenou session.
class PrihlaseniFormFactory
{
use Nette\SmartObject;
/** @var FormFactory */
private $factory;
/** @var User */
private $user;
public function __construct(FormFactory $factory, User $user)
{
$this->factory = $factory;
$this->user = $user;
}
/**
* @return Form
*/
public function create(callable $onSuccess)
{
$form = $this->factory->create();
$form->addText('login', 'E-mail:')
->setRequired('Prosím zadejte e-mail.')
->addRule($form::EMAIL, "Prosím zadejte e-mail ve správném tvaru.");
$form->addPassword('password', 'Heslo:')
->setRequired('Prosím zadejte heslo.');
$form->addSubmit('prihlasit', 'Přihlásit');
$form->onSuccess[] = function (Form $form, $values) use ($onSuccess) {
try {
$this->user->setExpiration(null);
$this->user->login($values->login, $values->password);
} catch (Nette\Security\AuthenticationException $e) {
$form->addError($e->getMessage());
return;
}
$onSuccess();
};
return $form;
}
}
jde treba za behu zmenit role uzivatele?
Editoval K3nny (28. 5. 2021 11:16)
- Gappa
- Nette Blogger | 208
jde treba za behu zmenit role uzivatele?
Jde :)
Konkrétně tato část:
public function wakeupIdentity(IIdentity $identity): ?IIdentity
{
// aktualizace rolí v identitě
$userId = $identity->getId();
$identity->setRoles($this->facade->getUserRoles($userId));
return $identity;
}