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 | 430
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.