From df86035225968b38b35bf6833e9175affaea6e50 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 24 Apr 2017 01:11:09 +0200 Subject: [PATCH 1/6] Default and light themes --- web/app/css/{app.css => themes/dark.css} | 0 web/app/css/themes/light.css | 78 ++++++++++++++++++++++++ 2 files changed, 78 insertions(+) rename web/app/css/{app.css => themes/dark.css} (100%) create mode 100644 web/app/css/themes/light.css diff --git a/web/app/css/app.css b/web/app/css/themes/dark.css similarity index 100% rename from web/app/css/app.css rename to web/app/css/themes/dark.css diff --git a/web/app/css/themes/light.css b/web/app/css/themes/light.css new file mode 100644 index 0000000..372b65f --- /dev/null +++ b/web/app/css/themes/light.css @@ -0,0 +1,78 @@ +.navbar { + border-radius: 0; +} + +#form_content { + display: block; + width: 100%; + padding: 10px; +} + +#languages { + padding-bottom: 5px; +} + +#languages .btn-group:first-child { + margin-right: 4px; +} + +pre { + background: #222; + border: #222; + color: #ddd; + white-space: pre-wrap; + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + word-wrap: break-word; +} + +pre ol { + padding-left: 50px !important; +} + +pre li:hover { + background: #444; +} + +.panel-heading .actions { + margin-top: -5px; +} + +div.diff { + display: none; +} + +.de1 { + padding-left: 5px; + padding-right: 5px; +} + +.li1 { + background: #333; +} + +.re8 { + color: #52F700; +} + +.kw3 { + color: #C6C765; +} + +#viewer .syntaxhighlighter td { + vertical-align: top !important; +} + +#options { + margin-bottom: 17px; +} + +.btn-delete { + background: #DE3336; + color: #fff; +} + +.btn-error:active, .btn-error:hover, .btn-error:focus { + color: #000; +} From 48eacc5cb8d443bef3938948b57920dbde254d02 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 24 Apr 2017 01:11:39 +0200 Subject: [PATCH 2/6] New configuration file --- app/bootstrap.php.d/10-config.php | 5 +++++ app/bootstrap.php.d/50-git.php | 10 ++++++++-- app/bootstrap.php.d/60-api.php | 2 +- app/bootstrap.php.d/70-security.php | 16 ++++++---------- app/config/config.yml.dist | 15 +++++++++++++++ src/Gist/Controller/LoginController.php | 4 ++-- src/Gist/Resources/views/base.html.twig | 18 +++++++++++++----- 7 files changed, 50 insertions(+), 20 deletions(-) create mode 100644 app/config/config.yml.dist diff --git a/app/bootstrap.php.d/10-config.php b/app/bootstrap.php.d/10-config.php index 16c2133..193d647 100644 --- a/app/bootstrap.php.d/10-config.php +++ b/app/bootstrap.php.d/10-config.php @@ -1,9 +1,14 @@ share(function ($app) { + return Yaml::parse($app['config.locator']->locate('config.yml')); +}); diff --git a/app/bootstrap.php.d/50-git.php b/app/bootstrap.php.d/50-git.php index 5508ca5..9511253 100644 --- a/app/bootstrap.php.d/50-git.php +++ b/app/bootstrap.php.d/50-git.php @@ -3,10 +3,16 @@ use GitWrapper\GitWrapper; use Gist\Service\Gist; -$app['gist_path'] = $app['root_path'].'/data/git'; +$dataPath = $app['settings']['data']['path']; + +if ($dataPath[0] !== '/') { + $app['gist_path'] = $app['root_path'].$dataPath; +} else { + $app['gist_path'] = $dataPath; +} $app['git_wrapper'] = $app->share(function ($app) { - return new GitWrapper('/usr/bin/git'); + return new GitWrapper($app['settings']['git']['path']); }); $app['git_working_copy'] = $app->share(function ($app) { diff --git a/app/bootstrap.php.d/60-api.php b/app/bootstrap.php.d/60-api.php index c7085ab..c66683b 100644 --- a/app/bootstrap.php.d/60-api.php +++ b/app/bootstrap.php.d/60-api.php @@ -3,5 +3,5 @@ use Gist\Api\Client; $app['api_client'] = $app->share(function ($app) { - return new Client(['base_uri' => 'https://gist.deblan.org/']); + return new Client(['base_uri' => $app['settings']['api']['base_uri']]); }); diff --git a/app/bootstrap.php.d/70-security.php b/app/bootstrap.php.d/70-security.php index 845aca2..dbc3ca4 100644 --- a/app/bootstrap.php.d/70-security.php +++ b/app/bootstrap.php.d/70-security.php @@ -9,13 +9,9 @@ use Gist\Security\AuthenticationListener; use Gist\Security\LogoutSuccessHandler; use Silex\Provider\SessionServiceProvider; -$app['enable_registration'] = true; -$app['enable_login'] = true; -$app['login_required_to_edit_gist'] = false; -$app['login_required_to_view_gist'] = false; -$app['login_required_to_view_embeded_gist'] = false; +$securitySettings = $app['settings']['security']; -$app['token'] = 'ThisTokenIsNotSoSecretChangeIt'; +$app['token'] = $securitySettings['token']; $app['salt_generator'] = $app->share(function ($app) { return new SaltGenerator(); @@ -77,10 +73,10 @@ $firewall = [ ], ]; -if ($app['login_required_to_edit_gist'] || $app['login_required_to_view_gist'] || $app['login_required_to_view_embeded_gist']) { +if ($securitySettings['login_required_to_edit_gist'] || $securitySettings['login_required_to_view_gist'] || $securitySettings['login_required_to_view_embeded_gist']) { $exceptedUriPattern = ['login', 'register']; - if ($app['login_required_to_view_gist'] === true) { + if ($securitySettings['login_required_to_view_gist'] === true) { $firewall['security.access_rules'][] = ['^/[a-z]{2}/view.*$', 'ROLE_USER']; $firewall['security.access_rules'][] = ['^/[a-z]{2}/revs.*$', 'ROLE_USER']; } else { @@ -88,13 +84,13 @@ if ($app['login_required_to_edit_gist'] || $app['login_required_to_view_gist'] | $exceptedUriPattern[] = 'revs'; } - if ($app['login_required_to_view_embeded_gist'] === true) { + if ($securitySettings['login_required_to_view_embeded_gist'] === true) { $firewall['security.access_rules'][] = ['^/[a-z]{2}/embed.*$', 'ROLE_USER']; } else { $exceptedUriPattern[] = 'embed'; } - if ($app['login_required_to_edit_gist'] === true) { + if ($securitySettings['login_required_to_edit_gist'] === true) { $firewall['security.access_rules'][] = ['^/[a-z]{2}/(?!('.implode('|', $exceptedUriPattern).')).*$', 'ROLE_USER']; } } diff --git a/app/config/config.yml.dist b/app/config/config.yml.dist new file mode 100644 index 0000000..0719a87 --- /dev/null +++ b/app/config/config.yml.dist @@ -0,0 +1,15 @@ +security: + token: ThisTokenIsNotSoSecretChangeIt + enable_registration: true + enable_login: true + login_required_to_edit_gist: true + login_required_to_view_gist: true + login_required_to_view_embeded_gist: true +api: + base_url: 'https://gist.deblan.org/' +data: + path: data/git +git: + path: /usr/bin/git +theme: + name: dark diff --git a/src/Gist/Controller/LoginController.php b/src/Gist/Controller/LoginController.php index 57723ed..a45d1a3 100644 --- a/src/Gist/Controller/LoginController.php +++ b/src/Gist/Controller/LoginController.php @@ -26,7 +26,7 @@ class LoginController extends Controller { $app = $this->getApp(); - if (false === $app['enable_registration']) { + if (false === $app['settings']['enable_registration']) { return new Response('', 403); } @@ -78,7 +78,7 @@ class LoginController extends Controller { $app = $this->getApp(); - if (false === $app['enable_login']) { + if (false === $app['settings']['enable_login']) { return new Response('', 403); } diff --git a/src/Gist/Resources/views/base.html.twig b/src/Gist/Resources/views/base.html.twig index 8ffe273..2410dd7 100644 --- a/src/Gist/Resources/views/base.html.twig +++ b/src/Gist/Resources/views/base.html.twig @@ -1,11 +1,19 @@ +{% set theme_settings = app.settings.theme %} +{% set security_dettings = app.settings.security %} {% block css %} - - + + {% if theme_settings.name == 'dark' %} + + {% else %} + + {% endif %} + + {% endblock %} {% block metas %} @@ -17,7 +25,7 @@ {% block nav %} -