Aktualizace dat v identitě
- MPep
- Člen | 7
Zdravím,
Mám problém s uložením dat do identity v presenetu.
$this->user->identity->data['CAT_EMAIL2'] = $catEmail;
Debugger::barDump($this->user->identity->data['CAT_EMAIL2']);
Druhý řádek poté hlásí chybu **Undefined index: CAT_EMAIL2
**
Nette verze 3.0
Objekt user získávám v konstruktoru takto:
public function __construct(
Nette\Security\User $user,
ReelsUserManager $reelsUserManager
)
{
parent::__construct();
$this->user = $user;
$this->reelsUserManager = $reelsUserManager;
}
$this->user->identity->data je řádek z databáze, array
Nevíte někdo co dělám špatně? Děkuji.
- MPep
- Člen | 7
Myslím že tento postup se mnou táhne z prvního projektu v nette:
1. V configu vytvořím službu a vní fci authenticate:
services:
- App\Model\ReelsUserManager
public function authenticate(array $credentials): Nette\Security\IIdentity
{
..
..
//$row je objekt Dibi\Row
return new Nette\Security\Identity($row['ID_USER'], 0, (array) $row);
}
2. injectnu si user do presenteru který se stará o přihlášení:
final class SignPresenter extends BasePresenter
{
/** @var Nette\Security\User @inject */
private $user;
public function __construct(Nette\Security\User $user)
{
$this->user = $user;
}
3. V SignPresenter s přihlašovacím formulářem a v něm fce formSucces:
$this->user->login($values->username, $values->password);
A to je myslím vše, netuším kde si user pamatuje údaje (session, cache?), jestli se správně vytvoří ani jak je možné že se zasvolá App\Model\ReelsUserManager::authenticate který implementuje Nette\Security\IAuthenticator
To jsou věci s kterými v nette vždy bojuji a když si myslím že jsem pochopil ukáže se že je to jinak.