Leuchtfeuer/auth0-for-typo3

View on GitHub
Resources/Private/Layouts/LoginV12.html

Summary

Maintainability
Test Coverage
<html
        xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
        xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
        data-namespace-typo3-fluid="true"
>

<div class="typo3-login auth0-login auth0-login-v12">
    <div class="typo3-login-inner">
        <div class="typo3-login-container">
            <div class="typo3-login-wrap">
                <div class="card card-login">
                    <header class="card-heading">
                        <div class="typo3-login-logo">
                            <img src="{logo}" class="typo3-login-image" alt="{logoAlt}" />
                        </div>
                    </header>
                    <main class="card-body">
                        <f:if condition="{action} == 'login'">
                            <f:then>
                                <f:if condition="{hasLoginError}">
                                    <div class="t3js-login-error" id="t3-login-error">
                                        <div class="alert alert-danger">
                                            <strong><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.error.message" /></strong>
                                            <p><f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.error.description" /></p>
                                        </div>
                                    </div>
                                </f:if>
                                <noscript>
                                    <f:be.infobox message="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.error.javascript')}" state="2" />
                                </noscript>
                                <div class="hidden t3js-login-error-nocookies">
                                    <f:be.infobox message="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.error.cookies')}" state="2" />
                                </div>
                                <div class="hidden t3js-login-error-noreferrer">
                                    <f:be.infobox message="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.error.referrer')}" state="2" />
                                </div>
                                <div class="typo3-login-form t3js-login-formfields">
                                    <form action="{formActionUrl}" method="post" name="loginform" id="typo3-login-form">
                                        <input type="hidden" name="login_status" value="login" />
                                        <input type="hidden" name="userident" id="t3-field-userident" class="t3js-login-userident-field" value="" />
                                        <input type="hidden" name="redirect_url" value="{redirectUrl}" />
                                        <input type="hidden" name="loginRefresh" value="{loginRefresh}" />
                                        <input type="hidden" name="{requestTokenName}" value="{requestTokenValue}" />

                                        <f:render section="loginFormFields" />
                                    </form>
                                </div>
                                <f:if condition="{loginProviders->f:count()} > 1">
                                    <nav aria-label="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.navigation.loginProvider')}">
                                        <f:comment>role is for VoiceOver</f:comment>
                                        <ul class="list-unstyled typo3-login-links" role="list">
                                            <f:for each="{loginProviders}" as="provider" key="providerKey">
                                                <f:if condition="{provider.label}">
                                                    <f:if condition="{loginProviderIdentifier} != {providerKey}">
                                                        <li class="t3js-loginprovider-switch" data-providerkey="{providerKey}">
                                                            <a href="?loginProvider={providerKey}">
                                                                <core:icon identifier="{provider.iconIdentifier}" size="small" />
                                                                <span><f:translate key="{provider.label}" default="{provider.label}" /></span>
                                                            </a>
                                                        </li>
                                                    </f:if>
                                                </f:if>
                                            </f:for>
                                        </ul>
                                    </nav>
                                </f:if>
                            </f:then>
                            <f:else>
                                <form action="{formActionUrl}" method="post" name="loginform">
                                    <input type="hidden" name="login_status" value="logout" />
                                    <div class="t3-login-box-body">
                                        <div class="t3-login-logout-form">
                                            <div class="t3-login-username">
                                                <div class="t3-login-label t3-username">
                                                    <f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.username" />
                                                </div>
                                                <div class="t3-username-current">
                                                    {backendUser.username}
                                                </div>
                                            </div>
                                            <f:if condition="{showInterfaceSelector}">
                                                <f:then>
                                                    <div class="t3-login-interface">
                                                        <div class="t3-login-label t3-interface-selector">
                                                            <f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.interface" />
                                                        </div>
                                                        <f:form.select name="users" options="{interfaces}" optionValueField="jumpScript" optionLabelField="label" />
                                                    </div>
                                                </f:then>
                                                <f:else>
                                                    <f:if condition="{interface}">
                                                        <f:form.hidden name="interface" value="{interface}" />
                                                    </f:if>
                                                </f:else>
                                            </f:if>
                                            <input type="hidden" name="p_field" value="" />
                                            <input class="btn btn-block btn-lg" type="submit" name="commandLO" value="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.submit')}" id="t3-login-submit" />
                                        </div>
                                    </div>
                                </form>
                            </f:else>
                        </f:if>
                    </main>
                    <f:render partial="Login/LoginNews" arguments="{_all}" />
                    <footer class="card-footer">
                        <div class="typo3-login-copyright-wrap">
                            <a href="#loginCopyright" class="typo3-login-copyright-link t3js-login-copyright-link collapsed" data-bs-toggle="collapse" role="button" aria-expanded="false" aria-controls="loginCopyright">
                                <span><f:translate key="LLL:EXT:auth0/Resources/Private/Language/locallang_be.xlf:form.login.copyright" /></span>
                                <f:image src="EXT:auth0/Resources/Public/Images/auth0-logo-horizontal-color.svg" alt="Auth0 logo" height="20" />
                            </a>
                            <div id="loginCopyright" class="collapse">
                                <div class="typo3-login-copyright-text">
                                    <p>
                                        <f:translate key="LLL:EXT:auth0/Resources/Private/Language/locallang_be.xlf:form.login.copyright.description" />
                                    </p>
                                    <nav aria-label="{f:translate('LLL:EXT:backend/Resources/Private/Language/locallang.xlf:n.navigation.typo3')}">
                                        <f:comment><!--role is for VoiceOver--></f:comment>
                                        <ul class="list-unstyled" role="list">
                                            <li><a href="https://www.auth0.com" target="_blank" rel="noreferrer" class="t3-login-link-typo3"><i class="fa fa-external-link"></i> Auth0.com</a></li>
                                            <li><a href="https://www.leuchtfeuer.com?utm_source=link&utm_medium=auth0" target="_blank" rel="noreferrer" class="t3-login-link-donate"><i class="fa fa-external-link"></i> Leuchtfeuer.com</a></li>
                                        </ul>
                                    </nav>
                                </div>
                            </div>
                        </div>
                    </footer>
                </div>
            </div>
        </div>
        <f:if condition="{loginFootnote}">
            <aside class="typo3-login-footnote" aria-label="{f:translate(key: 'LLL:EXT:backend/Resources/Private/Language/locallang.xlf:login.region.footnote')}">
                <p>{loginFootnote}</p>
            </aside>
        </f:if>
    </div>
    <f:comment><!--This link is only used for protection of the backend.--></f:comment>
    <a href="{loginUrl}" id="t3js-login-url" data-referrer-check-enabled="{f:if(condition: '{referrerCheckEnabled}', then: '1', else: '0')}" aria-hidden="true" tabindex="-1"></a>
</div>
</html>