{# # This file is part of Invenio. # Copyright (C) 2012, 2014, 2015 CERN. # # Invenio is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # Invenio is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Invenio; if not, write to the Free Software Foundation, Inc., # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. #} {%- from "_formhelpers.html" import render_field with context %} {%- extends "page.html" %} {%- set title = title|default(None) %} {%- set activated_providers = config.CFG_OPENID_PROVIDERS * config.CFG_OPENID_AUTHENTICATION + config.CFG_OAUTH1_PROVIDERS * config.CFG_OAUTH1_AUTHENTICATION + config.CFG_OAUTH2_PROVIDERS * config.CFG_OAUTH2_AUTHENTICATION %} {%- macro external_login_button(provider, referer='', icon_size=48, classes="", label="%(provider)s username") %} {%- block external_login_button scoped -%} {% if provider in config.CFG_OPENID_PROVIDERS %} {% set type = 'openid' %} {% elif provider in config.CFG_OAUTH2_PROVIDERS %} {% set type = 'oauth2' %} {% elif provider in config.CFG_OAUTH1_PROVIDERS %} {% set type = 'oauth1' %} {% else %} {% set type = 'login' %} {% endif %} {% set handler = url_for('youraccount.' + type, provider=provider) %} {% if referer %} {% if not url_for('webaccount.login') in referer %} {% set handler = url_for('youraccount.' + type, provider=provider, referer=referer) %} {% endif %} {% endif %}
  • {%- endblock external_login_button -%} {% endmacro %} {% macro external_login_form(provider, referer='', icon_size=48, classes="", label="%(provider)s username") %} {# Template of the login form for providers which need an username for verification. @param provider: The name of the provider @type provider: str @param referer: The referer URL - will be redirected upon after login @type referer: str @param icon_size: The size of the icon of the provider @type icon_size: int @param classes: Additional classes for the login form @type classes: str @param label: The label for text input. @param label: str @rtype: str #} {%- block external_login_form scoped -%} {% if provider in config.CFG_OPENID_PROVIDERS %} {% set type = 'openid' %} {% elif provider in config.CFG_OAUTH2_PROVIDERS %} {% set type = 'oauth2' %} {% elif provider in config.CFG_OAUTH1_PROVIDERS %} {% set type = 'oauth1' %} {% else %} {% set type = 'login' %} {% endif %}
  • {%- endblock external_login_form -%} {% endmacro %} {% macro construct_button(provider, size, button_class) %} {%- block construct_button scoped -%} {% set c = config.CFG_OPENID_CONFIGURATIONS.get(provider, {}) %} {% set identifier = c.get('identifier', '') %} {% if "{0}" in identifier %} {% set label = config.CFG_EXTERNAL_LOGIN_FORM_LABELS.get(provider, "%(provider)s username") %} {{ external_login_form(provider, form.referer.data, size, button_class, _(label)) }} {% else %} {{ external_login_button(provider, form.referer.data, size, button_class) }} {% endif %} {%- endblock construct_button -%} {% endmacro %} {% block body %} {%- block form_header scoped -%}
    {% if config.CFG_EXTERNAL_AUTH_USING_SSO %}{% block form_header_sso scoped %}

    {% autoescape false %} {{ _("You can login using %(x_url_open)sSingle-Sign-On%(x_url_close)s", x_url_open='', x_url_close='') }} {% endautoescape %}


    {% endblock form_header_sso %}{% endif %} {%- block form_header_message scoped -%}
    {% set x_url_open = ''|format(url_for('webaccount.register')) %}

    {{ _("If you already have an account, please login using the form below.") }}

    {{ _("If you don't own an account yet, please %(x_url_open)s register", x_url_open=x_url_open|safe) }} {{ _("%(x_url_close)s an internal account.", x_url_close=''|safe) }}


    {%- endblock form_header_message -%}
    {%- endblock form_header -%} {%- block form_body scoped -%}
    {%- block form_auth_internal scoped -%}
    {%- block form_auth_internal_form scoped -%} {%- block form_auth_internal_title scoped -%}{{ _('Please Sign In') }}{% endblock %} {%- endblock form_auth_internal -%} {%- block form_auth_external scoped -%} {%- if activated_providers %}
    {{ _('or Select Your Authentication Provider:') }}
      {% for provider in config.CFG_EXTERNAL_LOGIN_LARGE %} {% if provider in activated_providers %} {{ construct_button(provider, 48, "large") }} {% endif %} {% endfor %} {% set providers = config.CFG_EXTERNAL_LOGIN_BUTTON_ORDER %} {% if (activated_providers|length - CFG_EXTERNAL_LOGIN_LARGE|length) != providers|length %} {# Not all the providers ordered. Add the unsorted ones to the end. #} {% for provider in activated_providers|sort %} {% if not provider in providers %} {% do providers.append(provider) %} {% endif %} {% endfor %} {% endif %} {% for provider in providers %} {% if not provider in config.CFG_EXTERNAL_LOGIN_LARGE %} {{ construct_button(provider, 24, "") }} {% endif %} {% endfor %}
    {% endif %} {%- endblock form_auth_external -%}
    {%- endblock form_body -%} {%- block form_footer scoped -%}{%- endblock form_footer -%} {% endblock %} {% block javascript %} {{ super() }} {% endblock %}