nastavení debug podle přihlášeného uživatele

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
nn2
Člen | 9
+
0
-

Ahoj, potřeboval bych poradit, jak správně nastavit debug pro přihlášeného uživatele s danými právy.

Částečně to mám řešeno pomocí pole povolených IP adres takto

<?php
$configurator = new NConfigurator;
...
$configurator->setDebugMode($known_ips);
$configurator->enableDebugger(APP_DIR . '/log', "<email>");
$container = $configurator->createContainer();
?>

To funguje fajn, akorát musím znát ty IP adresy. Chtěl jsem udělat něco takového.

<?php
$configurator = new NConfigurator;
...
$container = $configurator->createContainer();
if ($user = $container->user)
	if ($user->isLoggedIn() && $user->getIdentity()->role == 'administrator' && isset($user->getIdentity()->last_ip))
		$known_ips[] = $user->getIdentity()->last_ip;
$configurator->setDebugMode($known_ips);
$configurator->enableDebugger(APP_DIR . '/log', "<email>");
?>

Jenže tady je problém v tom, že nejsou dostupné všechny panely, jen tuším paměť, dump a translator. Routing, databáze a podobné se nenačtou. Existuje tu jiná možnost, jak načíst uživatele, aniž by se vytvářel Container před nastavením debugu?

Moc díky za radu.

ic
Člen | 430
+
0
-

Já tohle už jednou taky použil, ale bez těch IP adres:

abstract class BasePresenter extends Presenter
{

	public function startup()
	{
		if( ($this->user->isLoggedIn()) && ($this->user->isInRole('administrator')) ) {
			Nette\Debug::enable(Nette\Debug::DEVELOPMENT);
		}
	.
	.
	.
	}
.
.
.
}

Editoval ic (6. 11. 2012 16:49)

Jan Mikeš
Člen | 771
+
0
-

ic napsal(a):

		if( ($this->user->isLoggedIn()) && ($this->user->isInRole('administrator')) ) {

Staci pouze

		if( $this->user->isInRole('administrator') ) {
nn2
Člen | 9
+
0
-

ic napsal(a):

Já tohle už jednou taky použil, ale bez těch IP adres:

abstract class BasePresenter extends Presenter
{

	public function startup()
	{
		if( ($this->user->isLoggedIn()) && ($this->user->isInRole('administrator')) ) {
			Nette\Debug::enable(Nette\Debug::DEVELOPMENT);
		}
	.
	.
	.
	}
.
.
.
}

Tak tohle mi bohužel nefunguje, panel to nezapne.