Dodatecne prihlaseni uzivatele

K3nny
Člen | 3
+
0
-

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 | 199
+
0
-

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;
	}
K3nny
Člen | 3
+
0
-

Parada :) To by mohlo jit. Dekuju!