I have to ask how to get name of logged user into Nette component (SomethingControl.php). Apparently I can't just do this:
$identity = $this->getUser()->getIdentity();
if ($identity) $this->template->username = $identity->getData()['username'];
So I've tried this:
$this->template->username = $this->user
but that doesn't work either.
You cannot get user like this, because UI\Control is not descendant of UI\Presenter. But Nette\Security\User is service registered in DIC so you can get it like this:
class SomethingControl extends \Nette\Application\UI\Control
{
/**
* @var \Nette\Security\User
*/
private $user;
public function __construct(\Nette\Security\User $user)
{
parent::__construct();
$this->user = $user;
}
public function render()
{
bdump($this->user); // getIdentity and username
}
}
Just make sure that you are using Component Factory - means do not create your component in the presenter using new operator.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With