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 %} -