Skip to content

Commit

Permalink
[security] SecurityExtension: detects Tracy by presence of service @t…
Browse files Browse the repository at this point in the history
…racy\Bar [Closes nette/di#245]
  • Loading branch information
dg committed Oct 6, 2020
1 parent 1522724 commit 152286d
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions security/src/Bridges/SecurityDI/SecurityExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public function __construct(bool $debugMode = false)
public function getConfigSchema(): Nette\Schema\Schema
{
return Expect::structure([
'debugger' => Expect::bool(interface_exists(\Tracy\IBarPanel::class)),
'debugger' => Expect::bool(),
'users' => Expect::arrayOf(
Expect::anyOf(
Expect::string(), // user => password
Expand Down Expand Up @@ -64,12 +64,6 @@ public function loadConfiguration()
$user = $builder->addDefinition($this->prefix('user'))
->setFactory(Nette\Security\User::class);

if ($this->debugMode && $config->debugger) {
$user->addSetup('@Tracy\Bar::addPanel', [
new Nette\DI\Definitions\Statement(Nette\Bridges\SecurityTracy\UserPanel::class),
]);
}

if ($config->users) {
$usersList = $usersRoles = $usersData = [];
foreach ($config->users as $username => $data) {
Expand Down Expand Up @@ -110,4 +104,19 @@ public function loadConfiguration()
$builder->addAlias('nette.userStorage', $this->prefix('userStorage'));
}
}


public function beforeCompile()
{
$builder = $this->getContainerBuilder();

if (
$this->debugMode &&
($this->config->debugger ?? $builder->getByType(\Tracy\Bar::class))
) {
$builder->getDefinition($this->prefix('user'))->addSetup('@Tracy\Bar::addPanel', [
new Nette\DI\Definitions\Statement(Nette\Bridges\SecurityTracy\UserPanel::class),
]);
}
}
}

0 comments on commit 152286d

Please sign in to comment.