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
 
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 | 431
 
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)

- nn2
 - Člen | 9
 
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.