<?php
/** @var \Pimcore\Templating\PhpEngine $view */
$view->extend('PimcoreAdminBundle:Admin/Login:layout.html.php');
$this->get("translate")->setDomain("admin");
//detect browser
$supported = false;
$browser = new \Pimcore\Browser();
$browserVersion = (int)$browser->getVersion();
$platform = $browser->getPlatform();
if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_FIREFOX && $browserVersion >= 52) {
$supported = true;
}
if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_CHROME && $browserVersion >= 52) { // Edge identifies currently as Chrome 52
$supported = true;
}
if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_SAFARI && $browserVersion >= 10) {
$supported = true;
}
if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_OPERA && $browserVersion >= 42) {
$supported = true;
}
?>
<div id="loginform">
<form id="form-element" method="post" action="<?= $view->router()->path('pimcore_admin_login_check', ['perspective' => strip_tags($view->request()->getParameter('perspective'))]) ?>">
<?php if ($this->error) { ?>
<div class="text error">
<?= $this->translate($this->error) ?>
</div>
<?php } ?>
<input type="text" name="username" autocomplete="username" placeholder="<?= $this->translate("Username"); ?>" required autofocus>
<input type="password" name="password" autocomplete="current-password" placeholder="<?= $this->translate("Password"); ?>" required>
<input type="hidden" name="csrfToken" id="csrfToken" value="<?= $this->csrfToken ?>">
<button type="submit"><?= $this->translate("Login"); ?></button>
</form>
<a href="<?= $view->router()->path('pimcore_admin_login_lostpassword') ?>" class="lostpassword"><?= $this->translate("Forgot your password"); ?>?</a>
</div>
<?php if (!$supported) { ?>
<div id="browserinfo">
<div class="text">
<?= $this->translate("Your browser is not supported. Please install the latest version of one of the following browsers."); ?>
</div>
<div class="text browserinfo">
<a href="http://www.google.com/chrome/" target="_blank" title="Chrome"><img src="/bundles/pimcoreadmin/img/login/chrome.svg" alt="Chrome"/></a>
<a href="http://www.mozilla.org/" target="_blank" title="Firefox"><img src="/bundles/pimcoreadmin/img/login/firefox.svg" alt="Firefox"/></a>
<a href="http://www.apple.com/safari/" target="_blank" title="Safari"><img src="/bundles/pimcoreadmin/img/login/safari.svg" alt="Safari"/></a>
<a href="http://www.microsoft.com/" target="_blank" title="Edge"><img src="/bundles/pimcoreadmin/img/login/edge.svg" alt="Edge"/></a>
</div>
<a href="#" onclick="showLogin();"><?= $this->translate("Click here to proceed"); ?></a>
</div>
<script type="text/javascript">
function showLogin() {
document.getElementById('loginform').style.display = 'block';
document.getElementById('browserinfo').style.display = 'none';
}
</script>
<style type="text/css">
#loginform {
display: none;
}
</style>
<?php } ?>
<?php $view->slots()->start('below_footer') ?>
<script>
<?php if(!$view->getParam("deeplink")) { ?>
// clear opened tabs store
localStorage.removeItem("pimcore_opentabs");
<?php } ?>
// hide symfony toolbar by default
var symfonyToolbarKey = 'symfony/profiler/toolbar/displayState';
if(!window.localStorage.getItem(symfonyToolbarKey)) {
window.localStorage.setItem(symfonyToolbarKey, 'none');
}
var formElement = document.getElementById('form-element');
var csrfRefreshInProgress = false;
function refreshCsrfToken() {
csrfRefreshInProgress = true;
formElement.style.opacity = '0.3';
var request = new XMLHttpRequest();
request.open('GET', '<?= $view->router()->path('pimcore_admin_login_csrf_token') ?>');
request.onload = function () {
if (this.status >= 200 && this.status < 400) {
var res = JSON.parse(this.response);
document.getElementById('csrfToken').setAttribute('value', res['csrfToken']);
formElement.style.opacity = '1';
csrfRefreshInProgress = false;
}
};
request.send();
}
document.addEventListener('visibilitychange', function(ev) {
if(document.visibilityState === 'visible') {
refreshCsrfToken();
}
});
window.setInterval(refreshCsrfToken, <?= $view->csrfTokenRefreshInterval ?>);
formElement.addEventListener("submit", function(evt) {
if(csrfRefreshInProgress) {
evt.preventDefault();
}
}, true);
</script>
<?php $view->slots()->stop() ?>
<?= $this->breachAttackRandomContent(); ?>