1482 lines
104 KiB
PHP
1482 lines
104 KiB
PHP
<?php
|
|
|
|
use Twig\Environment;
|
|
use Twig\Error\LoaderError;
|
|
use Twig\Error\RuntimeError;
|
|
use Twig\Extension\SandboxExtension;
|
|
use Twig\Markup;
|
|
use Twig\Sandbox\SecurityError;
|
|
use Twig\Sandbox\SecurityNotAllowedTagError;
|
|
use Twig\Sandbox\SecurityNotAllowedFilterError;
|
|
use Twig\Sandbox\SecurityNotAllowedFunctionError;
|
|
use Twig\Source;
|
|
use Twig\Template;
|
|
|
|
/* @Security/Collector/security.html.twig */
|
|
class __TwigTemplate_8da4aa8f6f7a3febef619e97459c65bf711b7a9e200c3563e8c9db24f3482efb extends Template
|
|
{
|
|
private $source;
|
|
private $macros = [];
|
|
|
|
public function __construct(Environment $env)
|
|
{
|
|
parent::__construct($env);
|
|
|
|
$this->source = $this->getSourceContext();
|
|
|
|
$this->blocks = [
|
|
'page_title' => [$this, 'block_page_title'],
|
|
'toolbar' => [$this, 'block_toolbar'],
|
|
'menu' => [$this, 'block_menu'],
|
|
'panel' => [$this, 'block_panel'],
|
|
];
|
|
}
|
|
|
|
protected function doGetParent(array $context)
|
|
{
|
|
// line 1
|
|
return "@WebProfiler/Profiler/layout.html.twig";
|
|
}
|
|
|
|
protected function doDisplay(array $context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "@Security/Collector/security.html.twig"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template", "@Security/Collector/security.html.twig"));
|
|
|
|
$this->parent = $this->loadTemplate("@WebProfiler/Profiler/layout.html.twig", "@Security/Collector/security.html.twig", 1);
|
|
$this->parent->display($context, array_merge($this->blocks, $blocks));
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
}
|
|
|
|
// line 3
|
|
public function block_page_title($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "page_title"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "page_title"));
|
|
|
|
echo "Security";
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
// line 5
|
|
public function block_toolbar($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "toolbar"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "toolbar"));
|
|
|
|
// line 6
|
|
echo " ";
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 6, $this->source); })()), "firewall", [], "any", false, false, false, 6)) {
|
|
// line 7
|
|
echo " ";
|
|
ob_start();
|
|
// line 8
|
|
echo " ";
|
|
echo twig_include($this->env, $context, "@Security/Collector/icon.svg");
|
|
echo "
|
|
<span class=\"sf-toolbar-value\">";
|
|
// line 9
|
|
echo twig_escape_filter($this->env, ((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "user", [], "any", true, true, false, 9)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "user", [], "any", false, false, false, 9), "n/a")) : ("n/a")), "html", null, true);
|
|
echo "</span>
|
|
";
|
|
$context["icon"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
|
|
// line 11
|
|
echo "
|
|
";
|
|
// line 12
|
|
ob_start();
|
|
// line 13
|
|
echo " ";
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 13, $this->source); })()), "impersonated", [], "any", false, false, false, 13)) {
|
|
// line 14
|
|
echo " <div class=\"sf-toolbar-info-group\">
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Impersonator</b>
|
|
<span>";
|
|
// line 17
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 17, $this->source); })()), "impersonatorUser", [], "any", false, false, false, 17), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
</div>
|
|
";
|
|
}
|
|
// line 21
|
|
echo "
|
|
<div class=\"sf-toolbar-info-group\">
|
|
";
|
|
// line 23
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 23, $this->source); })()), "enabled", [], "any", false, false, false, 23)) {
|
|
// line 24
|
|
echo " ";
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 24, $this->source); })()), "token", [], "any", false, false, false, 24)) {
|
|
// line 25
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<b>Logged in as</b>
|
|
<span>";
|
|
// line 27
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 27, $this->source); })()), "user", [], "any", false, false, false, 27), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Authenticated</b>
|
|
<span class=\"sf-toolbar-status sf-toolbar-status-";
|
|
// line 32
|
|
echo ((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 32, $this->source); })()), "authenticated", [], "any", false, false, false, 32)) ? ("green") : ("yellow"));
|
|
echo "\">";
|
|
echo ((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 32, $this->source); })()), "authenticated", [], "any", false, false, false, 32)) ? ("Yes") : ("No"));
|
|
echo "</span>
|
|
</div>
|
|
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Roles</b>
|
|
<span>
|
|
";
|
|
// line 38
|
|
$context["remainingRoles"] = twig_slice($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 38, $this->source); })()), "roles", [], "any", false, false, false, 38), 1);
|
|
// line 39
|
|
echo " ";
|
|
echo twig_escape_filter($this->env, twig_first($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 39, $this->source); })()), "roles", [], "any", false, false, false, 39)), "html", null, true);
|
|
echo "
|
|
";
|
|
// line 40
|
|
if ( !twig_test_empty((isset($context["remainingRoles"]) || array_key_exists("remainingRoles", $context) ? $context["remainingRoles"] : (function () { throw new RuntimeError('Variable "remainingRoles" does not exist.', 40, $this->source); })()))) {
|
|
// line 41
|
|
echo " +
|
|
<abbr title=\"";
|
|
// line 42
|
|
echo twig_escape_filter($this->env, twig_join_filter((isset($context["remainingRoles"]) || array_key_exists("remainingRoles", $context) ? $context["remainingRoles"] : (function () { throw new RuntimeError('Variable "remainingRoles" does not exist.', 42, $this->source); })()), ", "), "html", null, true);
|
|
echo "\">
|
|
";
|
|
// line 43
|
|
echo twig_escape_filter($this->env, twig_length_filter($this->env, (isset($context["remainingRoles"]) || array_key_exists("remainingRoles", $context) ? $context["remainingRoles"] : (function () { throw new RuntimeError('Variable "remainingRoles" does not exist.', 43, $this->source); })())), "html", null, true);
|
|
echo " more
|
|
</abbr>
|
|
";
|
|
}
|
|
// line 46
|
|
echo " </span>
|
|
</div>
|
|
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Token class</b>
|
|
<span>";
|
|
// line 51
|
|
echo $this->extensions['Symfony\Bridge\Twig\Extension\CodeExtension']->abbrClass(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 51, $this->source); })()), "tokenClass", [], "any", false, false, false, 51));
|
|
echo "</span>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 54
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<b>Authenticated</b>
|
|
<span class=\"sf-toolbar-status sf-toolbar-status-yellow\">No</span>
|
|
</div>
|
|
";
|
|
}
|
|
// line 59
|
|
echo "
|
|
";
|
|
// line 60
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 60, $this->source); })()), "firewall", [], "any", false, false, false, 60)) {
|
|
// line 61
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<b>Firewall name</b>
|
|
<span>";
|
|
// line 63
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 63, $this->source); })()), "firewall", [], "any", false, false, false, 63), "name", [], "any", false, false, false, 63), "html", null, true);
|
|
echo "</span>
|
|
</div>
|
|
";
|
|
}
|
|
// line 66
|
|
echo "
|
|
";
|
|
// line 67
|
|
if ((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 67, $this->source); })()), "token", [], "any", false, false, false, 67) && twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 67, $this->source); })()), "logoutUrl", [], "any", false, false, false, 67))) {
|
|
// line 68
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<b>Actions</b>
|
|
<span>
|
|
<a href=\"";
|
|
// line 71
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 71, $this->source); })()), "logoutUrl", [], "any", false, false, false, 71), "html", null, true);
|
|
echo "\">Logout</a>
|
|
";
|
|
// line 72
|
|
if ((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 72, $this->source); })()), "impersonated", [], "any", false, false, false, 72) && twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 72, $this->source); })()), "impersonationExitPath", [], "any", false, false, false, 72))) {
|
|
// line 73
|
|
echo " | <a href=\"";
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 73, $this->source); })()), "impersonationExitPath", [], "any", false, false, false, 73), "html", null, true);
|
|
echo "\">Exit impersonation</a>
|
|
";
|
|
}
|
|
// line 75
|
|
echo " </span>
|
|
</div>
|
|
";
|
|
}
|
|
// line 78
|
|
echo " ";
|
|
} else {
|
|
// line 79
|
|
echo " <div class=\"sf-toolbar-info-piece\">
|
|
<span>The security is disabled.</span>
|
|
</div>
|
|
";
|
|
}
|
|
// line 83
|
|
echo " </div>
|
|
";
|
|
$context["text"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
|
|
// line 85
|
|
echo "
|
|
";
|
|
// line 86
|
|
echo twig_include($this->env, $context, "@WebProfiler/Profiler/toolbar_item.html.twig", ["link" => (isset($context["profiler_url"]) || array_key_exists("profiler_url", $context) ? $context["profiler_url"] : (function () { throw new RuntimeError('Variable "profiler_url" does not exist.', 86, $this->source); })())]);
|
|
echo "
|
|
";
|
|
}
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
// line 90
|
|
public function block_menu($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "menu"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "menu"));
|
|
|
|
// line 91
|
|
echo " <span class=\"label ";
|
|
echo ((( !twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 91, $this->source); })()), "firewall", [], "any", false, false, false, 91) || !twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 91, $this->source); })()), "token", [], "any", false, false, false, 91))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<span class=\"icon\">";
|
|
// line 92
|
|
echo twig_include($this->env, $context, "@Security/Collector/icon.svg");
|
|
echo "</span>
|
|
<strong>Security</strong>
|
|
</span>
|
|
";
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
// line 97
|
|
public function block_panel($context, array $blocks = [])
|
|
{
|
|
$macros = $this->macros;
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e = $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "panel"));
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 = $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block", "panel"));
|
|
|
|
// line 98
|
|
echo " <h2>Security</h2>
|
|
";
|
|
// line 99
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 99, $this->source); })()), "enabled", [], "any", false, false, false, 99)) {
|
|
// line 100
|
|
echo " <div class=\"sf-tabs\">
|
|
<div class=\"tab ";
|
|
// line 101
|
|
echo ((twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 101, $this->source); })()), "token", [], "any", false, false, false, 101))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Token</h3>
|
|
|
|
<div class=\"tab-content\">
|
|
";
|
|
// line 105
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 105, $this->source); })()), "token", [], "any", false, false, false, 105)) {
|
|
// line 106
|
|
echo " <div class=\"metrics\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 108
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 108, $this->source); })()), "user", [], "any", false, false, false, 108), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Username</span>
|
|
</div>
|
|
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 113
|
|
echo twig_include($this->env, $context, (("@WebProfiler/Icon/" . ((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 113, $this->source); })()), "authenticated", [], "any", false, false, false, 113)) ? ("yes") : ("no"))) . ".svg"));
|
|
echo "</span>
|
|
<span class=\"label\">Authenticated</span>
|
|
</div>
|
|
</div>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th scope=\"col\" class=\"key\">Property</th>
|
|
<th scope=\"col\">Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th>Roles</th>
|
|
<td>
|
|
";
|
|
// line 129
|
|
echo ((twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 129, $this->source); })()), "roles", [], "any", false, false, false, 129))) ? ("none") : ($this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 129, $this->source); })()), "roles", [], "any", false, false, false, 129), 1)));
|
|
echo "
|
|
|
|
";
|
|
// line 131
|
|
if (( !twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 131, $this->source); })()), "authenticated", [], "any", false, false, false, 131) && twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 131, $this->source); })()), "roles", [], "any", false, false, false, 131)))) {
|
|
// line 132
|
|
echo " <p class=\"help\">User is not authenticated probably because they have no roles.</p>
|
|
";
|
|
}
|
|
// line 134
|
|
echo " </td>
|
|
</tr>
|
|
|
|
";
|
|
// line 137
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 137, $this->source); })()), "supportsRoleHierarchy", [], "any", false, false, false, 137)) {
|
|
// line 138
|
|
echo " <tr>
|
|
<th>Inherited Roles</th>
|
|
<td>";
|
|
// line 140
|
|
echo ((twig_test_empty(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 140, $this->source); })()), "inheritedRoles", [], "any", false, false, false, 140))) ? ("none") : ($this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 140, $this->source); })()), "inheritedRoles", [], "any", false, false, false, 140), 1)));
|
|
echo "</td>
|
|
</tr>
|
|
";
|
|
}
|
|
// line 143
|
|
echo "
|
|
";
|
|
// line 144
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 144, $this->source); })()), "token", [], "any", false, false, false, 144)) {
|
|
// line 145
|
|
echo " <tr>
|
|
<th>Token</th>
|
|
<td>";
|
|
// line 147
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 147, $this->source); })()), "token", [], "any", false, false, false, 147));
|
|
echo "</td>
|
|
</tr>
|
|
";
|
|
}
|
|
// line 150
|
|
echo " </tbody>
|
|
</table>
|
|
";
|
|
} elseif (twig_get_attribute($this->env, $this->source, // line 152
|
|
(isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 152, $this->source); })()), "enabled", [], "any", false, false, false, 152)) {
|
|
// line 153
|
|
echo " <div class=\"empty\">
|
|
<p>There is no security token.</p>
|
|
</div>
|
|
";
|
|
}
|
|
// line 157
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 160
|
|
echo ((twig_test_empty(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 160, $this->source); })()), "firewall", [], "any", false, false, false, 160), "security_enabled", [], "any", false, false, false, 160))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Firewall</h3>
|
|
<div class=\"tab-content\">
|
|
";
|
|
// line 163
|
|
if (twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 163, $this->source); })()), "firewall", [], "any", false, false, false, 163)) {
|
|
// line 164
|
|
echo " <div class=\"metrics\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 166
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 166, $this->source); })()), "firewall", [], "any", false, false, false, 166), "name", [], "any", false, false, false, 166), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Name</span>
|
|
</div>
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 170
|
|
echo twig_include($this->env, $context, (("@WebProfiler/Icon/" . ((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 170, $this->source); })()), "firewall", [], "any", false, false, false, 170), "security_enabled", [], "any", false, false, false, 170)) ? ("yes") : ("no"))) . ".svg"));
|
|
echo "</span>
|
|
<span class=\"label\">Security enabled</span>
|
|
</div>
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 174
|
|
echo twig_include($this->env, $context, (("@WebProfiler/Icon/" . ((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 174, $this->source); })()), "firewall", [], "any", false, false, false, 174), "stateless", [], "any", false, false, false, 174)) ? ("yes") : ("no"))) . ".svg"));
|
|
echo "</span>
|
|
<span class=\"label\">Stateless</span>
|
|
</div>
|
|
</div>
|
|
|
|
";
|
|
// line 179
|
|
if (twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 179, $this->source); })()), "firewall", [], "any", false, false, false, 179), "security_enabled", [], "any", false, false, false, 179)) {
|
|
// line 180
|
|
echo " <h4>Configuration</h4>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th scope=\"col\" class=\"key\">Key</th>
|
|
<th scope=\"col\">Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th>provider</th>
|
|
<td>";
|
|
// line 191
|
|
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 191, $this->source); })()), "firewall", [], "any", false, false, false, 191), "provider", [], "any", false, false, false, 191)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 191, $this->source); })()), "firewall", [], "any", false, false, false, 191), "provider", [], "any", false, false, false, 191), "html", null, true))) : (print ("(none)")));
|
|
echo "</td>
|
|
</tr>
|
|
<tr>
|
|
<th>context</th>
|
|
<td>";
|
|
// line 195
|
|
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 195, $this->source); })()), "firewall", [], "any", false, false, false, 195), "context", [], "any", false, false, false, 195)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 195, $this->source); })()), "firewall", [], "any", false, false, false, 195), "context", [], "any", false, false, false, 195), "html", null, true))) : (print ("(none)")));
|
|
echo "</td>
|
|
</tr>
|
|
<tr>
|
|
<th>entry_point</th>
|
|
<td>";
|
|
// line 199
|
|
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 199, $this->source); })()), "firewall", [], "any", false, false, false, 199), "entry_point", [], "any", false, false, false, 199)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 199, $this->source); })()), "firewall", [], "any", false, false, false, 199), "entry_point", [], "any", false, false, false, 199), "html", null, true))) : (print ("(none)")));
|
|
echo "</td>
|
|
</tr>
|
|
<tr>
|
|
<th>user_checker</th>
|
|
<td>";
|
|
// line 203
|
|
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 203, $this->source); })()), "firewall", [], "any", false, false, false, 203), "user_checker", [], "any", false, false, false, 203)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 203, $this->source); })()), "firewall", [], "any", false, false, false, 203), "user_checker", [], "any", false, false, false, 203), "html", null, true))) : (print ("(none)")));
|
|
echo "</td>
|
|
</tr>
|
|
<tr>
|
|
<th>access_denied_handler</th>
|
|
<td>";
|
|
// line 207
|
|
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 207, $this->source); })()), "firewall", [], "any", false, false, false, 207), "access_denied_handler", [], "any", false, false, false, 207)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 207, $this->source); })()), "firewall", [], "any", false, false, false, 207), "access_denied_handler", [], "any", false, false, false, 207), "html", null, true))) : (print ("(none)")));
|
|
echo "</td>
|
|
</tr>
|
|
<tr>
|
|
<th>access_denied_url</th>
|
|
<td>";
|
|
// line 211
|
|
((twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 211, $this->source); })()), "firewall", [], "any", false, false, false, 211), "access_denied_url", [], "any", false, false, false, 211)) ? (print (twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 211, $this->source); })()), "firewall", [], "any", false, false, false, 211), "access_denied_url", [], "any", false, false, false, 211), "html", null, true))) : (print ("(none)")));
|
|
echo "</td>
|
|
</tr>
|
|
<tr>
|
|
<th>authenticators</th>
|
|
<td>";
|
|
// line 215
|
|
echo ((twig_test_empty(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 215, $this->source); })()), "firewall", [], "any", false, false, false, 215), "authenticators", [], "any", false, false, false, 215))) ? ("(none)") : ($this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 215, $this->source); })()), "firewall", [], "any", false, false, false, 215), "authenticators", [], "any", false, false, false, 215), 1)));
|
|
echo "</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
";
|
|
}
|
|
// line 220
|
|
echo " ";
|
|
}
|
|
// line 221
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 224
|
|
echo ((twig_test_empty(((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "listeners", [], "any", true, true, false, 224)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "listeners", [], "any", false, false, false, 224), [])) : ([])))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Listeners</h3>
|
|
<div class=\"tab-content\">
|
|
";
|
|
// line 227
|
|
if (twig_test_empty(((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "listeners", [], "any", true, true, false, 227)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "listeners", [], "any", false, false, false, 227), [])) : ([])))) {
|
|
// line 228
|
|
echo " <div class=\"empty\">
|
|
<p>No security listeners have been recorded. Check that debugging is enabled in the kernel.</p>
|
|
</div>
|
|
";
|
|
} else {
|
|
// line 232
|
|
echo " <table>
|
|
<thead>
|
|
<tr>
|
|
<th>Listener</th>
|
|
<th>Duration</th>
|
|
<th>Response</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
";
|
|
// line 241
|
|
$context["previous_event"] = twig_first($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 241, $this->source); })()), "listeners", [], "any", false, false, false, 241));
|
|
// line 242
|
|
echo " ";
|
|
$context['_parent'] = $context;
|
|
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 242, $this->source); })()), "listeners", [], "any", false, false, false, 242));
|
|
$context['loop'] = [
|
|
'parent' => $context['_parent'],
|
|
'index0' => 0,
|
|
'index' => 1,
|
|
'first' => true,
|
|
];
|
|
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
|
|
$length = count($context['_seq']);
|
|
$context['loop']['revindex0'] = $length - 1;
|
|
$context['loop']['revindex'] = $length;
|
|
$context['loop']['length'] = $length;
|
|
$context['loop']['last'] = 1 === $length;
|
|
}
|
|
foreach ($context['_seq'] as $context["_key"] => $context["listener"]) {
|
|
// line 243
|
|
echo " ";
|
|
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 243) || ($context["listener"] != (isset($context["previous_event"]) || array_key_exists("previous_event", $context) ? $context["previous_event"] : (function () { throw new RuntimeError('Variable "previous_event" does not exist.', 243, $this->source); })())))) {
|
|
// line 244
|
|
echo " ";
|
|
if ( !twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 244)) {
|
|
// line 245
|
|
echo " </tbody>
|
|
";
|
|
}
|
|
// line 247
|
|
echo " <tbody>
|
|
";
|
|
// line 248
|
|
$context["previous_event"] = $context["listener"];
|
|
// line 249
|
|
echo " ";
|
|
}
|
|
// line 250
|
|
echo "
|
|
<tr>
|
|
<td class=\"font-normal\">";
|
|
// line 252
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["listener"], "stub", [], "any", false, false, false, 252));
|
|
echo "</td>
|
|
<td class=\"no-wrap\">";
|
|
// line 253
|
|
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, $context["listener"], "time", [], "any", false, false, false, 253) * 1000)), "html", null, true);
|
|
echo " ms</td>
|
|
<td class=\"font-normal\">";
|
|
// line 254
|
|
echo ((twig_get_attribute($this->env, $this->source, $context["listener"], "response", [], "any", false, false, false, 254)) ? ($this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["listener"], "response", [], "any", false, false, false, 254))) : ("(none)"));
|
|
echo "</td>
|
|
</tr>
|
|
|
|
";
|
|
// line 257
|
|
if (twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, false, 257)) {
|
|
// line 258
|
|
echo " </tbody>
|
|
";
|
|
}
|
|
// line 260
|
|
echo " ";
|
|
++$context['loop']['index0'];
|
|
++$context['loop']['index'];
|
|
$context['loop']['first'] = false;
|
|
if (isset($context['loop']['length'])) {
|
|
--$context['loop']['revindex0'];
|
|
--$context['loop']['revindex'];
|
|
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
|
|
}
|
|
}
|
|
$_parent = $context['_parent'];
|
|
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['listener'], $context['_parent'], $context['loop']);
|
|
$context = array_intersect_key($context, $_parent) + $_parent;
|
|
// line 261
|
|
echo " </table>
|
|
";
|
|
}
|
|
// line 263
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 266
|
|
echo ((twig_test_empty(((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "authenticators", [], "any", true, true, false, 266)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "authenticators", [], "any", false, false, false, 266), [])) : ([])))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Authenticators</h3>
|
|
<div class=\"tab-content\">
|
|
";
|
|
// line 269
|
|
if ( !twig_test_empty(((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "authenticators", [], "any", true, true, false, 269)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "authenticators", [], "any", false, false, false, 269), [])) : ([])))) {
|
|
// line 270
|
|
echo " <table>
|
|
<thead>
|
|
<tr>
|
|
<th>Authenticator</th>
|
|
<th>Supports</th>
|
|
<th>Duration</th>
|
|
<th>Passport</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
";
|
|
// line 280
|
|
$context["previous_event"] = twig_first($this->env, twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 280, $this->source); })()), "listeners", [], "any", false, false, false, 280));
|
|
// line 281
|
|
echo " ";
|
|
$context['_parent'] = $context;
|
|
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 281, $this->source); })()), "authenticators", [], "any", false, false, false, 281));
|
|
$context['loop'] = [
|
|
'parent' => $context['_parent'],
|
|
'index0' => 0,
|
|
'index' => 1,
|
|
'first' => true,
|
|
];
|
|
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
|
|
$length = count($context['_seq']);
|
|
$context['loop']['revindex0'] = $length - 1;
|
|
$context['loop']['revindex'] = $length;
|
|
$context['loop']['length'] = $length;
|
|
$context['loop']['last'] = 1 === $length;
|
|
}
|
|
foreach ($context['_seq'] as $context["_key"] => $context["authenticator"]) {
|
|
// line 282
|
|
echo " ";
|
|
if ((twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 282) || ($context["authenticator"] != (isset($context["previous_event"]) || array_key_exists("previous_event", $context) ? $context["previous_event"] : (function () { throw new RuntimeError('Variable "previous_event" does not exist.', 282, $this->source); })())))) {
|
|
// line 283
|
|
echo " ";
|
|
if ( !twig_get_attribute($this->env, $this->source, $context["loop"], "first", [], "any", false, false, false, 283)) {
|
|
// line 284
|
|
echo " </tbody>
|
|
";
|
|
}
|
|
// line 286
|
|
echo "
|
|
<tbody>
|
|
";
|
|
// line 288
|
|
$context["previous_event"] = $context["authenticator"];
|
|
// line 289
|
|
echo " ";
|
|
}
|
|
// line 290
|
|
echo "
|
|
<tr>
|
|
<td class=\"font-normal\">";
|
|
// line 292
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["authenticator"], "stub", [], "any", false, false, false, 292));
|
|
echo "</td>
|
|
<td class=\"no-wrap\">";
|
|
// line 293
|
|
echo twig_include($this->env, $context, (("@WebProfiler/Icon/" . ((twig_get_attribute($this->env, $this->source, $context["authenticator"], "supports", [], "any", false, false, false, 293)) ? ("yes") : ("no"))) . ".svg"));
|
|
echo "</td>
|
|
<td class=\"no-wrap\">";
|
|
// line 294
|
|
echo twig_escape_filter($this->env, twig_sprintf("%0.2f", (twig_get_attribute($this->env, $this->source, $context["authenticator"], "duration", [], "any", false, false, false, 294) * 1000)), "html", null, true);
|
|
echo " ms</td>
|
|
<td class=\"font-normal\">";
|
|
// line 295
|
|
echo ((twig_get_attribute($this->env, $this->source, $context["authenticator"], "passport", [], "any", false, false, false, 295)) ? ($this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["authenticator"], "passport", [], "any", false, false, false, 295))) : ("(none)"));
|
|
echo "</td>
|
|
</tr>
|
|
|
|
";
|
|
// line 298
|
|
if (twig_get_attribute($this->env, $this->source, $context["loop"], "last", [], "any", false, false, false, 298)) {
|
|
// line 299
|
|
echo " </tbody>
|
|
";
|
|
}
|
|
// line 301
|
|
echo " ";
|
|
++$context['loop']['index0'];
|
|
++$context['loop']['index'];
|
|
$context['loop']['first'] = false;
|
|
if (isset($context['loop']['length'])) {
|
|
--$context['loop']['revindex0'];
|
|
--$context['loop']['revindex'];
|
|
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
|
|
}
|
|
}
|
|
$_parent = $context['_parent'];
|
|
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['authenticator'], $context['_parent'], $context['loop']);
|
|
$context = array_intersect_key($context, $_parent) + $_parent;
|
|
// line 302
|
|
echo " </table>
|
|
";
|
|
} else {
|
|
// line 304
|
|
echo " <div class=\"empty\">
|
|
<p>No authenticators have been recorded. Check previous profiles on your authentication endpoint.</p>
|
|
</div>
|
|
";
|
|
}
|
|
// line 308
|
|
echo " </div>
|
|
</div>
|
|
|
|
<div class=\"tab ";
|
|
// line 311
|
|
echo ((twig_test_empty(((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "accessDecisionLog", [], "any", true, true, false, 311)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "accessDecisionLog", [], "any", false, false, false, 311), [])) : ([])))) ? ("disabled") : (""));
|
|
echo "\">
|
|
<h3 class=\"tab-title\">Access Decision</h3>
|
|
<div class=\"tab-content\">
|
|
";
|
|
// line 314
|
|
if ( !twig_test_empty(((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "voters", [], "any", true, true, false, 314)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "voters", [], "any", false, false, false, 314), [])) : ([])))) {
|
|
// line 315
|
|
echo " <div class=\"metrics\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">";
|
|
// line 317
|
|
echo twig_escape_filter($this->env, ((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "voterStrategy", [], "any", true, true, false, 317)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "voterStrategy", [], "any", false, false, false, 317), "unknown")) : ("unknown")), "html", null, true);
|
|
echo "</span>
|
|
<span class=\"label\">Strategy</span>
|
|
</div>
|
|
</div>
|
|
|
|
<table class=\"voters\">
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Voter class</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
";
|
|
// line 331
|
|
$context['_parent'] = $context;
|
|
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 331, $this->source); })()), "voters", [], "any", false, false, false, 331));
|
|
$context['loop'] = [
|
|
'parent' => $context['_parent'],
|
|
'index0' => 0,
|
|
'index' => 1,
|
|
'first' => true,
|
|
];
|
|
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
|
|
$length = count($context['_seq']);
|
|
$context['loop']['revindex0'] = $length - 1;
|
|
$context['loop']['revindex'] = $length;
|
|
$context['loop']['length'] = $length;
|
|
$context['loop']['last'] = 1 === $length;
|
|
}
|
|
foreach ($context['_seq'] as $context["_key"] => $context["voter"]) {
|
|
// line 332
|
|
echo " <tr>
|
|
<td class=\"font-normal text-small text-muted nowrap\">";
|
|
// line 333
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 333), "html", null, true);
|
|
echo "</td>
|
|
<td class=\"font-normal\">";
|
|
// line 334
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, $context["voter"]);
|
|
echo "</td>
|
|
</tr>
|
|
";
|
|
++$context['loop']['index0'];
|
|
++$context['loop']['index'];
|
|
$context['loop']['first'] = false;
|
|
if (isset($context['loop']['length'])) {
|
|
--$context['loop']['revindex0'];
|
|
--$context['loop']['revindex'];
|
|
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
|
|
}
|
|
}
|
|
$_parent = $context['_parent'];
|
|
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['voter'], $context['_parent'], $context['loop']);
|
|
$context = array_intersect_key($context, $_parent) + $_parent;
|
|
// line 337
|
|
echo " </tbody>
|
|
</table>
|
|
";
|
|
}
|
|
// line 340
|
|
echo " ";
|
|
if ( !twig_test_empty(((twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "accessDecisionLog", [], "any", true, true, false, 340)) ? (_twig_default_filter(twig_get_attribute($this->env, $this->source, ($context["collector"] ?? null), "accessDecisionLog", [], "any", false, false, false, 340), [])) : ([])))) {
|
|
// line 341
|
|
echo " <h2>Access decision log</h2>
|
|
|
|
<table class=\"decision-log\">
|
|
<col style=\"width: 30px\">
|
|
<col style=\"width: 120px\">
|
|
<col style=\"width: 25%\">
|
|
<col style=\"width: 60%\">
|
|
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Result</th>
|
|
<th>Attributes</th>
|
|
<th>Object</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
";
|
|
// line 359
|
|
$context['_parent'] = $context;
|
|
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 359, $this->source); })()), "accessDecisionLog", [], "any", false, false, false, 359));
|
|
$context['loop'] = [
|
|
'parent' => $context['_parent'],
|
|
'index0' => 0,
|
|
'index' => 1,
|
|
'first' => true,
|
|
];
|
|
if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
|
|
$length = count($context['_seq']);
|
|
$context['loop']['revindex0'] = $length - 1;
|
|
$context['loop']['revindex'] = $length;
|
|
$context['loop']['length'] = $length;
|
|
$context['loop']['last'] = 1 === $length;
|
|
}
|
|
foreach ($context['_seq'] as $context["_key"] => $context["decision"]) {
|
|
// line 360
|
|
echo " <tr class=\"voter_result\">
|
|
<td class=\"font-normal text-small text-muted nowrap\">";
|
|
// line 361
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 361), "html", null, true);
|
|
echo "</td>
|
|
<td class=\"font-normal\">
|
|
";
|
|
// line 363
|
|
echo ((twig_get_attribute($this->env, $this->source, $context["decision"], "result", [], "any", false, false, false, 363)) ? ("<span class=\"label status-success same-width\">GRANTED</span>") : ("<span class=\"label status-error same-width\">DENIED</span>"));
|
|
// line 366
|
|
echo "
|
|
</td>
|
|
<td>
|
|
";
|
|
// line 369
|
|
if ((twig_length_filter($this->env, twig_get_attribute($this->env, $this->source, $context["decision"], "attributes", [], "any", false, false, false, 369)) == 1)) {
|
|
// line 370
|
|
echo " ";
|
|
$context["attribute"] = twig_first($this->env, twig_get_attribute($this->env, $this->source, $context["decision"], "attributes", [], "any", false, false, false, 370));
|
|
// line 371
|
|
echo " ";
|
|
if (twig_get_attribute($this->env, $this->source, ($context["attribute"] ?? null), "expression", [], "any", true, true, false, 371)) {
|
|
// line 372
|
|
echo " Expression: <pre><code>";
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, (isset($context["attribute"]) || array_key_exists("attribute", $context) ? $context["attribute"] : (function () { throw new RuntimeError('Variable "attribute" does not exist.', 372, $this->source); })()), "expression", [], "any", false, false, false, 372), "html", null, true);
|
|
echo "</code></pre>
|
|
";
|
|
} elseif ((twig_get_attribute($this->env, $this->source, // line 373
|
|
(isset($context["attribute"]) || array_key_exists("attribute", $context) ? $context["attribute"] : (function () { throw new RuntimeError('Variable "attribute" does not exist.', 373, $this->source); })()), "type", [], "any", false, false, false, 373) == "string")) {
|
|
// line 374
|
|
echo " ";
|
|
echo twig_escape_filter($this->env, (isset($context["attribute"]) || array_key_exists("attribute", $context) ? $context["attribute"] : (function () { throw new RuntimeError('Variable "attribute" does not exist.', 374, $this->source); })()), "html", null, true);
|
|
echo "
|
|
";
|
|
} else {
|
|
// line 376
|
|
echo " ";
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, (isset($context["attribute"]) || array_key_exists("attribute", $context) ? $context["attribute"] : (function () { throw new RuntimeError('Variable "attribute" does not exist.', 376, $this->source); })()));
|
|
echo "
|
|
";
|
|
}
|
|
// line 378
|
|
echo " ";
|
|
} else {
|
|
// line 379
|
|
echo " ";
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["decision"], "attributes", [], "any", false, false, false, 379));
|
|
echo "
|
|
";
|
|
}
|
|
// line 381
|
|
echo " </td>
|
|
<td>";
|
|
// line 382
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["decision"], "seek", [0 => "object"], "method", false, false, false, 382));
|
|
echo "</td>
|
|
</tr>
|
|
<tr class=\"voter_details\">
|
|
<td></td>
|
|
<td colspan=\"3\">
|
|
";
|
|
// line 387
|
|
if ( !twig_test_empty(twig_get_attribute($this->env, $this->source, $context["decision"], "voter_details", [], "any", false, false, false, 387))) {
|
|
// line 388
|
|
echo " ";
|
|
$context["voter_details_id"] = ("voter-details-" . twig_get_attribute($this->env, $this->source, $context["loop"], "index", [], "any", false, false, false, 388));
|
|
// line 389
|
|
echo " <div id=\"";
|
|
echo twig_escape_filter($this->env, (isset($context["voter_details_id"]) || array_key_exists("voter_details_id", $context) ? $context["voter_details_id"] : (function () { throw new RuntimeError('Variable "voter_details_id" does not exist.', 389, $this->source); })()), "html", null, true);
|
|
echo "\" class=\"sf-toggle-content sf-toggle-hidden\">
|
|
<table>
|
|
<tbody>
|
|
";
|
|
// line 392
|
|
$context['_parent'] = $context;
|
|
$context['_seq'] = twig_ensure_traversable(twig_get_attribute($this->env, $this->source, $context["decision"], "voter_details", [], "any", false, false, false, 392));
|
|
foreach ($context['_seq'] as $context["_key"] => $context["voter_detail"]) {
|
|
// line 393
|
|
echo " <tr>
|
|
<td class=\"font-normal\">";
|
|
// line 394
|
|
echo $this->extensions['Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension']->dumpData($this->env, twig_get_attribute($this->env, $this->source, $context["voter_detail"], "class", [], "array", false, false, false, 394));
|
|
echo "</td>
|
|
";
|
|
// line 395
|
|
if ((twig_get_attribute($this->env, $this->source, (isset($context["collector"]) || array_key_exists("collector", $context) ? $context["collector"] : (function () { throw new RuntimeError('Variable "collector" does not exist.', 395, $this->source); })()), "voterStrategy", [], "any", false, false, false, 395) == "unanimous")) {
|
|
// line 396
|
|
echo " <td class=\"font-normal text-small\">attribute ";
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, $context["voter_detail"], "attributes", [], "array", false, false, false, 396), 0, [], "array", false, false, false, 396), "html", null, true);
|
|
echo "</td>
|
|
";
|
|
}
|
|
// line 398
|
|
echo " <td class=\"font-normal text-small\">
|
|
";
|
|
// line 399
|
|
if ((twig_get_attribute($this->env, $this->source, $context["voter_detail"], "vote", [], "array", false, false, false, 399) == twig_constant("Symfony\\Component\\Security\\Core\\Authorization\\Voter\\VoterInterface::ACCESS_GRANTED"))) {
|
|
// line 400
|
|
echo " ACCESS GRANTED
|
|
";
|
|
} elseif ((twig_get_attribute($this->env, $this->source, // line 401
|
|
$context["voter_detail"], "vote", [], "array", false, false, false, 401) == twig_constant("Symfony\\Component\\Security\\Core\\Authorization\\Voter\\VoterInterface::ACCESS_ABSTAIN"))) {
|
|
// line 402
|
|
echo " ACCESS ABSTAIN
|
|
";
|
|
} elseif ((twig_get_attribute($this->env, $this->source, // line 403
|
|
$context["voter_detail"], "vote", [], "array", false, false, false, 403) == twig_constant("Symfony\\Component\\Security\\Core\\Authorization\\Voter\\VoterInterface::ACCESS_DENIED"))) {
|
|
// line 404
|
|
echo " ACCESS DENIED
|
|
";
|
|
} else {
|
|
// line 406
|
|
echo " unknown (";
|
|
echo twig_escape_filter($this->env, twig_get_attribute($this->env, $this->source, $context["voter_detail"], "vote", [], "array", false, false, false, 406), "html", null, true);
|
|
echo ")
|
|
";
|
|
}
|
|
// line 408
|
|
echo " </td>
|
|
</tr>
|
|
";
|
|
}
|
|
$_parent = $context['_parent'];
|
|
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['voter_detail'], $context['_parent'], $context['loop']);
|
|
$context = array_intersect_key($context, $_parent) + $_parent;
|
|
// line 411
|
|
echo " </tbody>
|
|
</table>
|
|
</div>
|
|
<a class=\"btn btn-link text-small sf-toggle\" data-toggle-selector=\"#";
|
|
// line 414
|
|
echo twig_escape_filter($this->env, (isset($context["voter_details_id"]) || array_key_exists("voter_details_id", $context) ? $context["voter_details_id"] : (function () { throw new RuntimeError('Variable "voter_details_id" does not exist.', 414, $this->source); })()), "html", null, true);
|
|
echo "\" data-toggle-alt-content=\"Hide voter details\">Show voter details</a>
|
|
";
|
|
}
|
|
// line 416
|
|
echo " </td>
|
|
</tr>
|
|
";
|
|
++$context['loop']['index0'];
|
|
++$context['loop']['index'];
|
|
$context['loop']['first'] = false;
|
|
if (isset($context['loop']['length'])) {
|
|
--$context['loop']['revindex0'];
|
|
--$context['loop']['revindex'];
|
|
$context['loop']['last'] = 0 === $context['loop']['revindex0'];
|
|
}
|
|
}
|
|
$_parent = $context['_parent'];
|
|
unset($context['_seq'], $context['_iterated'], $context['_key'], $context['decision'], $context['_parent'], $context['loop']);
|
|
$context = array_intersect_key($context, $_parent) + $_parent;
|
|
// line 419
|
|
echo " </tbody>
|
|
</table>
|
|
</div>
|
|
";
|
|
}
|
|
// line 423
|
|
echo " </div>
|
|
</div>
|
|
";
|
|
}
|
|
|
|
$__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
|
|
|
|
|
|
$__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
|
|
|
|
}
|
|
|
|
public function getTemplateName()
|
|
{
|
|
return "@Security/Collector/security.html.twig";
|
|
}
|
|
|
|
public function isTraitable()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
public function getDebugInfo()
|
|
{
|
|
return array ( 1024 => 423, 1018 => 419, 1002 => 416, 997 => 414, 992 => 411, 984 => 408, 978 => 406, 974 => 404, 972 => 403, 969 => 402, 967 => 401, 964 => 400, 962 => 399, 959 => 398, 953 => 396, 951 => 395, 947 => 394, 944 => 393, 940 => 392, 933 => 389, 930 => 388, 928 => 387, 920 => 382, 917 => 381, 911 => 379, 908 => 378, 902 => 376, 896 => 374, 894 => 373, 889 => 372, 886 => 371, 883 => 370, 881 => 369, 876 => 366, 874 => 363, 869 => 361, 866 => 360, 849 => 359, 829 => 341, 826 => 340, 821 => 337, 804 => 334, 800 => 333, 797 => 332, 780 => 331, 763 => 317, 759 => 315, 757 => 314, 751 => 311, 746 => 308, 740 => 304, 736 => 302, 722 => 301, 718 => 299, 716 => 298, 710 => 295, 706 => 294, 702 => 293, 698 => 292, 694 => 290, 691 => 289, 689 => 288, 685 => 286, 681 => 284, 678 => 283, 675 => 282, 657 => 281, 655 => 280, 643 => 270, 641 => 269, 635 => 266, 630 => 263, 626 => 261, 612 => 260, 608 => 258, 606 => 257, 600 => 254, 596 => 253, 592 => 252, 588 => 250, 585 => 249, 583 => 248, 580 => 247, 576 => 245, 573 => 244, 570 => 243, 552 => 242, 550 => 241, 539 => 232, 533 => 228, 531 => 227, 525 => 224, 520 => 221, 517 => 220, 509 => 215, 502 => 211, 495 => 207, 488 => 203, 481 => 199, 474 => 195, 467 => 191, 454 => 180, 452 => 179, 444 => 174, 437 => 170, 430 => 166, 426 => 164, 424 => 163, 418 => 160, 413 => 157, 407 => 153, 405 => 152, 401 => 150, 395 => 147, 391 => 145, 389 => 144, 386 => 143, 380 => 140, 376 => 138, 374 => 137, 369 => 134, 365 => 132, 363 => 131, 358 => 129, 339 => 113, 331 => 108, 327 => 106, 325 => 105, 318 => 101, 315 => 100, 313 => 99, 310 => 98, 300 => 97, 286 => 92, 281 => 91, 271 => 90, 258 => 86, 255 => 85, 251 => 83, 245 => 79, 242 => 78, 237 => 75, 231 => 73, 229 => 72, 225 => 71, 220 => 68, 218 => 67, 215 => 66, 209 => 63, 205 => 61, 203 => 60, 200 => 59, 193 => 54, 187 => 51, 180 => 46, 174 => 43, 170 => 42, 167 => 41, 165 => 40, 160 => 39, 158 => 38, 147 => 32, 139 => 27, 135 => 25, 132 => 24, 130 => 23, 126 => 21, 119 => 17, 114 => 14, 111 => 13, 109 => 12, 106 => 11, 101 => 9, 96 => 8, 93 => 7, 90 => 6, 80 => 5, 61 => 3, 38 => 1,);
|
|
}
|
|
|
|
public function getSourceContext()
|
|
{
|
|
return new Source("{% extends '@WebProfiler/Profiler/layout.html.twig' %}
|
|
|
|
{% block page_title 'Security' %}
|
|
|
|
{% block toolbar %}
|
|
{% if collector.firewall %}
|
|
{% set icon %}
|
|
{{ include('@Security/Collector/icon.svg') }}
|
|
<span class=\"sf-toolbar-value\">{{ collector.user|default('n/a') }}</span>
|
|
{% endset %}
|
|
|
|
{% set text %}
|
|
{% if collector.impersonated %}
|
|
<div class=\"sf-toolbar-info-group\">
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Impersonator</b>
|
|
<span>{{ collector.impersonatorUser }}</span>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class=\"sf-toolbar-info-group\">
|
|
{% if collector.enabled %}
|
|
{% if collector.token %}
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Logged in as</b>
|
|
<span>{{ collector.user }}</span>
|
|
</div>
|
|
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Authenticated</b>
|
|
<span class=\"sf-toolbar-status sf-toolbar-status-{{ collector.authenticated ? 'green' : 'yellow' }}\">{{ collector.authenticated ? 'Yes' : 'No' }}</span>
|
|
</div>
|
|
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Roles</b>
|
|
<span>
|
|
{% set remainingRoles = collector.roles|slice(1) %}
|
|
{{ collector.roles|first }}
|
|
{% if remainingRoles is not empty %}
|
|
+
|
|
<abbr title=\"{{ remainingRoles|join(', ') }}\">
|
|
{{ remainingRoles|length }} more
|
|
</abbr>
|
|
{% endif %}
|
|
</span>
|
|
</div>
|
|
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Token class</b>
|
|
<span>{{ collector.tokenClass|abbr_class }}</span>
|
|
</div>
|
|
{% else %}
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Authenticated</b>
|
|
<span class=\"sf-toolbar-status sf-toolbar-status-yellow\">No</span>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if collector.firewall %}
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Firewall name</b>
|
|
<span>{{ collector.firewall.name }}</span>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if collector.token and collector.logoutUrl %}
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<b>Actions</b>
|
|
<span>
|
|
<a href=\"{{ collector.logoutUrl }}\">Logout</a>
|
|
{% if collector.impersonated and collector.impersonationExitPath %}
|
|
| <a href=\"{{ collector.impersonationExitPath }}\">Exit impersonation</a>
|
|
{% endif %}
|
|
</span>
|
|
</div>
|
|
{% endif %}
|
|
{% else %}
|
|
<div class=\"sf-toolbar-info-piece\">
|
|
<span>The security is disabled.</span>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
{% endset %}
|
|
|
|
{{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { link: profiler_url }) }}
|
|
{% endif %}
|
|
{% endblock %}
|
|
|
|
{% block menu %}
|
|
<span class=\"label {{ not collector.firewall or not collector.token ? 'disabled' }}\">
|
|
<span class=\"icon\">{{ include('@Security/Collector/icon.svg') }}</span>
|
|
<strong>Security</strong>
|
|
</span>
|
|
{% endblock %}
|
|
|
|
{% block panel %}
|
|
<h2>Security</h2>
|
|
{% if collector.enabled %}
|
|
<div class=\"sf-tabs\">
|
|
<div class=\"tab {{ collector.token is empty ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Token</h3>
|
|
|
|
<div class=\"tab-content\">
|
|
{% if collector.token %}
|
|
<div class=\"metrics\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">{{ collector.user }}</span>
|
|
<span class=\"label\">Username</span>
|
|
</div>
|
|
|
|
<div class=\"metric\">
|
|
<span class=\"value\">{{ include('@WebProfiler/Icon/' ~ (collector.authenticated ? 'yes' : 'no') ~ '.svg') }}</span>
|
|
<span class=\"label\">Authenticated</span>
|
|
</div>
|
|
</div>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th scope=\"col\" class=\"key\">Property</th>
|
|
<th scope=\"col\">Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th>Roles</th>
|
|
<td>
|
|
{{ collector.roles is empty ? 'none' : profiler_dump(collector.roles, maxDepth=1) }}
|
|
|
|
{% if not collector.authenticated and collector.roles is empty %}
|
|
<p class=\"help\">User is not authenticated probably because they have no roles.</p>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
|
|
{% if collector.supportsRoleHierarchy %}
|
|
<tr>
|
|
<th>Inherited Roles</th>
|
|
<td>{{ collector.inheritedRoles is empty ? 'none' : profiler_dump(collector.inheritedRoles, maxDepth=1) }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
|
|
{% if collector.token %}
|
|
<tr>
|
|
<th>Token</th>
|
|
<td>{{ profiler_dump(collector.token) }}</td>
|
|
</tr>
|
|
{% endif %}
|
|
</tbody>
|
|
</table>
|
|
{% elseif collector.enabled %}
|
|
<div class=\"empty\">
|
|
<p>There is no security token.</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ collector.firewall.security_enabled is empty ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Firewall</h3>
|
|
<div class=\"tab-content\">
|
|
{% if collector.firewall %}
|
|
<div class=\"metrics\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">{{ collector.firewall.name }}</span>
|
|
<span class=\"label\">Name</span>
|
|
</div>
|
|
<div class=\"metric\">
|
|
<span class=\"value\">{{ include('@WebProfiler/Icon/' ~ (collector.firewall.security_enabled ? 'yes' : 'no') ~ '.svg') }}</span>
|
|
<span class=\"label\">Security enabled</span>
|
|
</div>
|
|
<div class=\"metric\">
|
|
<span class=\"value\">{{ include('@WebProfiler/Icon/' ~ (collector.firewall.stateless ? 'yes' : 'no') ~ '.svg') }}</span>
|
|
<span class=\"label\">Stateless</span>
|
|
</div>
|
|
</div>
|
|
|
|
{% if collector.firewall.security_enabled %}
|
|
<h4>Configuration</h4>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th scope=\"col\" class=\"key\">Key</th>
|
|
<th scope=\"col\">Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<th>provider</th>
|
|
<td>{{ collector.firewall.provider ?: '(none)' }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>context</th>
|
|
<td>{{ collector.firewall.context ?: '(none)' }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>entry_point</th>
|
|
<td>{{ collector.firewall.entry_point ?: '(none)' }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>user_checker</th>
|
|
<td>{{ collector.firewall.user_checker ?: '(none)' }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>access_denied_handler</th>
|
|
<td>{{ collector.firewall.access_denied_handler ?: '(none)' }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>access_denied_url</th>
|
|
<td>{{ collector.firewall.access_denied_url ?: '(none)' }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>authenticators</th>
|
|
<td>{{ collector.firewall.authenticators is empty ? '(none)' : profiler_dump(collector.firewall.authenticators, maxDepth=1) }}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ collector.listeners|default([]) is empty ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Listeners</h3>
|
|
<div class=\"tab-content\">
|
|
{% if collector.listeners|default([]) is empty %}
|
|
<div class=\"empty\">
|
|
<p>No security listeners have been recorded. Check that debugging is enabled in the kernel.</p>
|
|
</div>
|
|
{% else %}
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Listener</th>
|
|
<th>Duration</th>
|
|
<th>Response</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
{% set previous_event = (collector.listeners|first) %}
|
|
{% for listener in collector.listeners %}
|
|
{% if loop.first or listener != previous_event %}
|
|
{% if not loop.first %}
|
|
</tbody>
|
|
{% endif %}
|
|
<tbody>
|
|
{% set previous_event = listener %}
|
|
{% endif %}
|
|
|
|
<tr>
|
|
<td class=\"font-normal\">{{ profiler_dump(listener.stub) }}</td>
|
|
<td class=\"no-wrap\">{{ '%0.2f'|format(listener.time * 1000) }} ms</td>
|
|
<td class=\"font-normal\">{{ listener.response ? profiler_dump(listener.response) : '(none)' }}</td>
|
|
</tr>
|
|
|
|
{% if loop.last %}
|
|
</tbody>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</table>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ collector.authenticators|default([]) is empty ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Authenticators</h3>
|
|
<div class=\"tab-content\">
|
|
{% if collector.authenticators|default([]) is not empty %}
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Authenticator</th>
|
|
<th>Supports</th>
|
|
<th>Duration</th>
|
|
<th>Passport</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
{% set previous_event = (collector.listeners|first) %}
|
|
{% for authenticator in collector.authenticators %}
|
|
{% if loop.first or authenticator != previous_event %}
|
|
{% if not loop.first %}
|
|
</tbody>
|
|
{% endif %}
|
|
|
|
<tbody>
|
|
{% set previous_event = authenticator %}
|
|
{% endif %}
|
|
|
|
<tr>
|
|
<td class=\"font-normal\">{{ profiler_dump(authenticator.stub) }}</td>
|
|
<td class=\"no-wrap\">{{ include('@WebProfiler/Icon/' ~ (authenticator.supports ? 'yes' : 'no') ~ '.svg') }}</td>
|
|
<td class=\"no-wrap\">{{ '%0.2f'|format(authenticator.duration * 1000) }} ms</td>
|
|
<td class=\"font-normal\">{{ authenticator.passport ? profiler_dump(authenticator.passport) : '(none)' }}</td>
|
|
</tr>
|
|
|
|
{% if loop.last %}
|
|
</tbody>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</table>
|
|
{% else %}
|
|
<div class=\"empty\">
|
|
<p>No authenticators have been recorded. Check previous profiles on your authentication endpoint.</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class=\"tab {{ collector.accessDecisionLog|default([]) is empty ? 'disabled' }}\">
|
|
<h3 class=\"tab-title\">Access Decision</h3>
|
|
<div class=\"tab-content\">
|
|
{% if collector.voters|default([]) is not empty %}
|
|
<div class=\"metrics\">
|
|
<div class=\"metric\">
|
|
<span class=\"value\">{{ collector.voterStrategy|default('unknown') }}</span>
|
|
<span class=\"label\">Strategy</span>
|
|
</div>
|
|
</div>
|
|
|
|
<table class=\"voters\">
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Voter class</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
{% for voter in collector.voters %}
|
|
<tr>
|
|
<td class=\"font-normal text-small text-muted nowrap\">{{ loop.index }}</td>
|
|
<td class=\"font-normal\">{{ profiler_dump(voter) }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% if collector.accessDecisionLog|default([]) is not empty %}
|
|
<h2>Access decision log</h2>
|
|
|
|
<table class=\"decision-log\">
|
|
<col style=\"width: 30px\">
|
|
<col style=\"width: 120px\">
|
|
<col style=\"width: 25%\">
|
|
<col style=\"width: 60%\">
|
|
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Result</th>
|
|
<th>Attributes</th>
|
|
<th>Object</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
<tbody>
|
|
{% for decision in collector.accessDecisionLog %}
|
|
<tr class=\"voter_result\">
|
|
<td class=\"font-normal text-small text-muted nowrap\">{{ loop.index }}</td>
|
|
<td class=\"font-normal\">
|
|
{{ decision.result
|
|
? '<span class=\"label status-success same-width\">GRANTED</span>'
|
|
: '<span class=\"label status-error same-width\">DENIED</span>'
|
|
}}
|
|
</td>
|
|
<td>
|
|
{% if decision.attributes|length == 1 %}
|
|
{% set attribute = decision.attributes|first %}
|
|
{% if attribute.expression is defined %}
|
|
Expression: <pre><code>{{ attribute.expression }}</code></pre>
|
|
{% elseif attribute.type == 'string' %}
|
|
{{ attribute }}
|
|
{% else %}
|
|
{{ profiler_dump(attribute) }}
|
|
{% endif %}
|
|
{% else %}
|
|
{{ profiler_dump(decision.attributes) }}
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ profiler_dump(decision.seek('object')) }}</td>
|
|
</tr>
|
|
<tr class=\"voter_details\">
|
|
<td></td>
|
|
<td colspan=\"3\">
|
|
{% if decision.voter_details is not empty %}
|
|
{% set voter_details_id = 'voter-details-' ~ loop.index %}
|
|
<div id=\"{{ voter_details_id }}\" class=\"sf-toggle-content sf-toggle-hidden\">
|
|
<table>
|
|
<tbody>
|
|
{% for voter_detail in decision.voter_details %}
|
|
<tr>
|
|
<td class=\"font-normal\">{{ profiler_dump(voter_detail['class']) }}</td>
|
|
{% if collector.voterStrategy == 'unanimous' %}
|
|
<td class=\"font-normal text-small\">attribute {{ voter_detail['attributes'][0] }}</td>
|
|
{% endif %}
|
|
<td class=\"font-normal text-small\">
|
|
{% if voter_detail['vote'] == constant('Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\VoterInterface::ACCESS_GRANTED') %}
|
|
ACCESS GRANTED
|
|
{% elseif voter_detail['vote'] == constant('Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\VoterInterface::ACCESS_ABSTAIN') %}
|
|
ACCESS ABSTAIN
|
|
{% elseif voter_detail['vote'] == constant('Symfony\\\\Component\\\\Security\\\\Core\\\\Authorization\\\\Voter\\\\VoterInterface::ACCESS_DENIED') %}
|
|
ACCESS DENIED
|
|
{% else %}
|
|
unknown ({{ voter_detail['vote'] }})
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<a class=\"btn btn-link text-small sf-toggle\" data-toggle-selector=\"#{{ voter_details_id }}\" data-toggle-alt-content=\"Hide voter details\">Show voter details</a>
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% endblock %}
|
|
", "@Security/Collector/security.html.twig", "/home/poule/encrypted/stockage-syncable/www/development/html/caisse/vendor/symfony/security-bundle/Resources/views/Collector/security.html.twig");
|
|
}
|
|
}
|