]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Merge pull request #1604 from ArthurHoaro/feature/server-admin-page
authorArthurHoaro <arthur@hoa.ro>
Tue, 27 Oct 2020 18:29:43 +0000 (19:29 +0100)
committerGitHub <noreply@github.com>
Tue, 27 Oct 2020 18:29:43 +0000 (19:29 +0100)
Feature: add a Server administration page

1  2 
index.php

diff --combined index.php
index 1b10ee41c8299f196b510bde155d6c09e8bd045b,d0c5ac60cfa78eb67c78a3b0ebc17079c079f2cd..a46e32c9ec42215595426b96ff6302fbb0d334c1
+++ b/index.php
@@@ -25,12 -25,9 +25,12 @@@ require_once 'application/Utils.php'
  
  require_once __DIR__ . '/init.php';
  
 +use Katzgrau\KLogger\Logger;
 +use Psr\Log\LogLevel;
  use Shaarli\Config\ConfigManager;
  use Shaarli\Container\ContainerBuilder;
  use Shaarli\Languages;
 +use Shaarli\Security\BanManager;
  use Shaarli\Security\CookieManager;
  use Shaarli\Security\LoginManager;
  use Shaarli\Security\SessionManager;
@@@ -51,22 -48,10 +51,22 @@@ if ($conf->get('dev.debug', false)) 
      });
  }
  
 +$logger = new Logger(
 +    dirname($conf->get('resource.log')),
 +    !$conf->get('dev.debug') ? LogLevel::INFO : LogLevel::DEBUG,
 +    ['filename' => basename($conf->get('resource.log'))]
 +);
  $sessionManager = new SessionManager($_SESSION, $conf, session_save_path());
  $sessionManager->initialize();
  $cookieManager = new CookieManager($_COOKIE);
 -$loginManager = new LoginManager($conf, $sessionManager, $cookieManager);
 +$banManager = new BanManager(
 +    $conf->get('security.trusted_proxies', []),
 +    $conf->get('security.ban_after'),
 +    $conf->get('security.ban_duration'),
 +    $conf->get('resource.ban_file', 'data/ipbans.php'),
 +    $logger
 +);
 +$loginManager = new LoginManager($conf, $sessionManager, $cookieManager, $banManager, $logger);
  $loginManager->generateStaySignedInToken($_SERVER['REMOTE_ADDR']);
  
  // Sniff browser language and set date format accordingly.
@@@ -86,7 -71,7 +86,7 @@@ date_default_timezone_set($conf->get('g
  
  $loginManager->checkLoginState(client_ip_id($_SERVER));
  
 -$containerBuilder = new ContainerBuilder($conf, $sessionManager, $cookieManager, $loginManager);
 +$containerBuilder = new ContainerBuilder($conf, $sessionManager, $cookieManager, $loginManager, $logger);
  $container = $containerBuilder->build();
  $app = new App($container);
  
@@@ -143,6 -128,8 +143,8 @@@ $app->group('/admin', function () 
      $this->get('/plugins', '\Shaarli\Front\Controller\Admin\PluginsController:index');
      $this->post('/plugins', '\Shaarli\Front\Controller\Admin\PluginsController:save');
      $this->get('/token', '\Shaarli\Front\Controller\Admin\TokenController:getToken');
+     $this->get('/server', '\Shaarli\Front\Controller\Admin\ServerController:index');
+     $this->get('/clear-cache', '\Shaarli\Front\Controller\Admin\ServerController:clearCache');
      $this->get('/thumbnails', '\Shaarli\Front\Controller\Admin\ThumbnailsController:index');
      $this->get('/metadata', '\Shaarli\Front\Controller\Admin\MetadataController:ajaxRetrieveTitle');
      $this->get('/visibility/{visibility}', '\Shaarli\Front\Controller\Admin\SessionFilterController:visibility');
@@@ -166,12 -153,6 +168,12 @@@ $app->group('/api/v1', function () 
      $this->get('/history', '\Shaarli\Api\Controllers\HistoryController:getHistory')->setName('getHistory');
  })->add('\Shaarli\Api\ApiMiddleware');
  
 -$response = $app->run(true);
 -
 -$app->respond($response);
 +try {
 +    $response = $app->run(true);
 +    $app->respond($response);
 +} catch (Throwable $e) {
 +    die(nl2br(
 +        'An unexpected error happened, and the error template could not be displayed.' . PHP_EOL . PHP_EOL .
 +       exception2text($e)
 +    ));
 +}