{% extends '@WebProfiler/Profiler/layout.html.twig' %}

{% block page_title 'Security' %}

{% block toolbar %}
    {% if collector.tokenClass %}
        {% set is_authenticated = collector.enabled and collector.authenticated  %}
        {% set color_code = is_authenticated ? '' : 'yellow' %}
    {% else %}
        {% set color_code = collector.enabled ? 'red' : '' %}
    {% endif %}

    {% set icon %}
        {{ include('@Security/Collector/icon.svg') }}
        <span class="sf-toolbar-value">{{ collector.user|default('n/a') }}</span>
    {% endset %}

    {% set text %}
        {% if collector.tokenClass %}
            <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-{{ is_authenticated ? 'green' : 'red' }}">{{ is_authenticated ? 'Yes' : 'No' }}</span>
            </div>

            {% if collector.tokenClass != null %}
            <div class="sf-toolbar-info-piece">
                <b>Token class</b>
                <span>{{ collector.tokenClass|abbr_class }}</span>
            </div>
            {% endif %}
            {% if collector.logoutUrl %}
            <div class="sf-toolbar-info-piece">
                <b>Actions</b>
                <span><a href="{{ collector.logoutUrl }}">Logout</a></span>
            </div>
            {% endif %}
        {% elseif collector.enabled %}
            <div class="sf-toolbar-info-piece">
                <span>You are not authenticated.</span>
            </div>
        {% else %}
            <div class="sf-toolbar-info-piece">
                <span>The security is disabled.</span>
            </div>
        {% endif %}
    {% endset %}

    {{ include('@WebProfiler/Profiler/toolbar_item.html.twig', { link: profiler_url, status: color_code }) }}
{% endblock %}

{% block menu %}
    <span class="label {{ not collector.enabled or not collector.tokenClass ? 'disabled' }}">
        <span class="icon">{{ include('@Security/Collector/icon.svg') }}</span>
        <strong>Security</strong>
    </span>
{% endblock %}

{% block panel %}
    <h2>Security Token</h2>

    {% if collector.tokenClass %}
        <div class="metrics">
            <div class="metric">
                <span class="value">{{ collector.user == 'anon.' ? 'Anonymous' : 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' : collector.roles|yaml_encode }}

                        {% 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' : collector.inheritedRoles|yaml_encode }}</td>
                </tr>
                {% endif %}

                {% if collector.tokenClass %}
                <tr>
                    <th>Token class</th>
                    <td>{{ collector.tokenClass }}</td>
                </tr>
                {% endif %}
            </tbody>
        </table>
    {% elseif collector.enabled %}
        <div class="empty">
            <p>There is no security token.</p>
        </div>
    {% else %}
        <div class="empty">
            <p>The security component is disabled.</p>
        </div>
    {% endif %}
{% endblock %}
