Skip to content

Commit 248ac3a

Browse files
committed
SecurityExtension: detects Tracy by presence of service @tracy\Bar [Closes nette/di#245]
1 parent 86d9857 commit 248ac3a

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/Bridges/SecurityDI/SecurityExtension.php

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public function __construct(bool $debugMode = false)
3131
public function getConfigSchema(): Nette\Schema\Schema
3232
{
3333
return Expect::structure([
34-
'debugger' => Expect::bool(interface_exists(\Tracy\IBarPanel::class)),
34+
'debugger' => Expect::bool(),
3535
'users' => Expect::arrayOf(
3636
Expect::anyOf(
3737
Expect::string(), // user => password
@@ -64,12 +64,6 @@ public function loadConfiguration()
6464
$user = $builder->addDefinition($this->prefix('user'))
6565
->setFactory(Nette\Security\User::class);
6666

67-
if ($this->debugMode && $config->debugger) {
68-
$user->addSetup('@Tracy\Bar::addPanel', [
69-
new Nette\DI\Definitions\Statement(Nette\Bridges\SecurityTracy\UserPanel::class),
70-
]);
71-
}
72-
7367
if ($config->users) {
7468
$usersList = $usersRoles = $usersData = [];
7569
foreach ($config->users as $username => $data) {
@@ -110,4 +104,19 @@ public function loadConfiguration()
110104
$builder->addAlias('nette.userStorage', $this->prefix('userStorage'));
111105
}
112106
}
107+
108+
109+
public function beforeCompile()
110+
{
111+
$builder = $this->getContainerBuilder();
112+
113+
if (
114+
$this->debugMode &&
115+
($this->config->debugger ?? $builder->getByType(\Tracy\Bar::class))
116+
) {
117+
$builder->getDefinition($this->prefix('user'))->addSetup('@Tracy\Bar::addPanel', [
118+
new Nette\DI\Definitions\Statement(Nette\Bridges\SecurityTracy\UserPanel::class),
119+
]);
120+
}
121+
}
113122
}

0 commit comments

Comments
 (0)