vendor/pimcore/pimcore/bundles/AdminBundle/Resources/views/Admin/Login/login.html.php line 78

Open in your IDE?
  1. <?php
  2. /** @var \Pimcore\Templating\PhpEngine $view */
  3. $view->extend('PimcoreAdminBundle:Admin/Login:layout.html.php');
  4. $this->get("translate")->setDomain("admin");
  5. //detect browser
  6. $supported      false;
  7. $browser        = new \Pimcore\Browser();
  8. $browserVersion = (int)$browser->getVersion();
  9. $platform       $browser->getPlatform();
  10. if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_FIREFOX && $browserVersion >= 52) {
  11.     $supported true;
  12. }
  13. if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_CHROME && $browserVersion >= 52) { // Edge identifies currently as Chrome 52
  14.     $supported true;
  15. }
  16. if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_SAFARI && $browserVersion >= 10) {
  17.     $supported true;
  18. }
  19. if ($browser->getBrowser() == \Pimcore\Browser::BROWSER_OPERA && $browserVersion >= 42) {
  20.     $supported true;
  21. }
  22. ?>
  23. <div id="loginform">
  24.     <form id="form-element" method="post" action="<?= $view->router()->path('pimcore_admin_login_check', ['perspective' => strip_tags($view->request()->getParameter('perspective'))]) ?>">
  25.         <?php if ($this->error) { ?>
  26.             <div class="text error">
  27.                 <?= $this->translate($this->error?>
  28.             </div>
  29.         <?php ?>
  30.         <input type="text" name="username" autocomplete="username" placeholder="<?= $this->translate("Username"); ?>" required autofocus>
  31.         <input type="password" name="password" autocomplete="current-password" placeholder="<?= $this->translate("Password"); ?>" required>
  32.         <input type="hidden" name="csrfToken" id="csrfToken" value="<?= $this->csrfToken ?>">
  33.         <button type="submit"><?= $this->translate("Login"); ?></button>
  34.     </form>
  35.     <a href="<?= $view->router()->path('pimcore_admin_login_lostpassword'?>" class="lostpassword"><?= $this->translate("Forgot your password"); ?>?</a>
  36. </div>
  37. <?php if (!$supported) { ?>
  38.     <div id="browserinfo">
  39.         <div class="text">
  40.             <?= $this->translate("Your browser is not supported. Please install the latest version of one of the following browsers."); ?>
  41.         </div>
  42.         <div class="text browserinfo">
  43.             <a href="http://www.google.com/chrome/" target="_blank" title="Chrome"><img src="/bundles/pimcoreadmin/img/login/chrome.svg" alt="Chrome"/></a>
  44.             <a href="http://www.mozilla.org/" target="_blank" title="Firefox"><img src="/bundles/pimcoreadmin/img/login/firefox.svg" alt="Firefox"/></a>
  45.             <a href="http://www.apple.com/safari/" target="_blank" title="Safari"><img src="/bundles/pimcoreadmin/img/login/safari.svg" alt="Safari"/></a>
  46.             <a href="http://www.microsoft.com/" target="_blank" title="Edge"><img src="/bundles/pimcoreadmin/img/login/edge.svg" alt="Edge"/></a>
  47.         </div>
  48.         <a href="#" onclick="showLogin();"><?= $this->translate("Click here to proceed"); ?></a>
  49.     </div>
  50.     <script type="text/javascript">
  51.         function showLogin() {
  52.             document.getElementById('loginform').style.display = 'block';
  53.             document.getElementById('browserinfo').style.display = 'none';
  54.         }
  55.     </script>
  56.     <style type="text/css">
  57.         #loginform {
  58.             display: none;
  59.         }
  60.     </style>
  61. <?php ?>
  62. <?php $view->slots()->start('below_footer'?>
  63. <script>
  64.     <?php if(!$view->getParam("deeplink")) { ?>
  65.     // clear opened tabs store
  66.     localStorage.removeItem("pimcore_opentabs");
  67.     <?php ?>
  68.     // hide symfony toolbar by default
  69.     var symfonyToolbarKey = 'symfony/profiler/toolbar/displayState';
  70.     if(!window.localStorage.getItem(symfonyToolbarKey)) {
  71.         window.localStorage.setItem(symfonyToolbarKey, 'none');
  72.     }
  73.     var formElement = document.getElementById('form-element');
  74.     var csrfRefreshInProgress = false;
  75.     function refreshCsrfToken() {
  76.         csrfRefreshInProgress = true;
  77.         formElement.style.opacity = '0.3';
  78.         var request = new XMLHttpRequest();
  79.         request.open('GET', '<?= $view->router()->path('pimcore_admin_login_csrf_token'?>');
  80.         request.onload = function () {
  81.             if (this.status >= 200 && this.status < 400) {
  82.                 var res = JSON.parse(this.response);
  83.                 document.getElementById('csrfToken').setAttribute('value', res['csrfToken']);
  84.                 formElement.style.opacity = '1';
  85.                 csrfRefreshInProgress = false;
  86.             }
  87.         };
  88.         request.send();
  89.     }
  90.     document.addEventListener('visibilitychange', function(ev) {
  91.         if(document.visibilityState === 'visible') {
  92.             refreshCsrfToken();
  93.         }
  94.     });
  95.     window.setInterval(refreshCsrfToken, <?= $view->csrfTokenRefreshInterval ?>);
  96.     formElement.addEventListener("submit", function(evt) {
  97.         if(csrfRefreshInProgress) {
  98.             evt.preventDefault();
  99.         }
  100.     }, true);
  101. </script>
  102. <?php $view->slots()->stop() ?>
  103. <?= $this->breachAttackRandomContent(); ?>