{% import "_macros.html" as macros %} Authorize - NanoIDP {% macro client_info_block() %}
{% if logo_url %} {% else %} {% endif %}
{% if not client or client.show_client_id %}{{ client_id }}{% endif %} {% if client and client.show_description and client.description %}{{ client.description }}{% endif %} wants to access your account
Requested permissions:
{% for s in scope.split() %} {% if s == 'openid' %} {% elif s == 'profile' %} {% elif s == 'email' %} {% elif s == 'offline_access' %} {% else %} {% endif %} {{ s }} {% endfor %}
{% endmacro %} {% macro login_form_block() %} {% if persona_mode %}
{{ macros.persona_picker(users, "Persona login - select a user to authorize.") }}
{% elif totp_step %} {# Declarative TOTP second factor (#348): a further phase after a successful password check, riding two_step's machinery. OAuth parameters stay in the URL (the form has no action, so it always lands back on this same /authorize?... URL); since nothing is stored server-side, the password travels forward as a hidden field too and is re-checked on submit. #}
{{ macros.totp_code_fields(login_username, login_password) }}
{% elif two_step_login and not login_username %}
{% elif two_step_login %}
{% else %}
{% endif %} {% if (two_step_login or totp_step) and login_username %} {# "Change username" for the password step and the TOTP step alike - one block, so the two screens cannot drift, the same shape login.html uses (#348 review, cleanup). #}
Change username
{% endif %} {% endmacro %} {% set horizontal = client and client.layout == 'horizontal' %}

NanoIDP

Authorization Request
{% if error %} {% endif %} {% if (two_step_login or totp_step) and login_username %}
Signing in as {{ login_username }}
{% endif %} {% if horizontal %} {# The password-only step is much shorter than the client-info column, so it's top-aligned rather than centered - but only once the "Signing in as" block above has already shown the identity; every other case keeps the original centering (#323 review round 1, before-merge 4: this must not change existing horizontal-layout clients that never opt into two_step_login). #} {% else %} {{ client_info_block() }} {{ login_form_block() }} {% endif %}