commit 058a34929446f4ee337755677ca5ec50e5ccea29 Author: skirtiadi skirtiadi@giantrabbit.com Date: Fri Jun 19 15:51:10 2020 -0700
Added header response to allow request from the Lektor donate pages.
Added a section in README to add the Tor lektor site base url.
Issue #45530 --- README.md | 9 +++++++++ src/AccessControlMiddleware.php | 18 ++++++++++++++++++ src/middleware.php | 1 + src/routes.php | 4 ++++ src/settings.php | 6 ++++++ 5 files changed, 38 insertions(+)
diff --git a/README.md b/README.md index bdb50ac6..f3502637 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,15 @@ $stripeSettings['secretKey'] = 'Input-SecretKey-here(Sylvanus)'; $stripeSettings['publishableKey'] = 'Input-PublishableKey-here(Sylvanus)'; ```
+For local developments only, create a file at private/settings.local.php. +It should have this in it: + +``` php +<?php + +$torSiteBaseUrl = 'http://localhost:5000'; +``` + You'll need to setup your Apache config to point to the public subdirectory in the repository.
Now to do development, just run: diff --git a/src/AccessControlMiddleware.php b/src/AccessControlMiddleware.php new file mode 100644 index 00000000..d900fa63 --- /dev/null +++ b/src/AccessControlMiddleware.php @@ -0,0 +1,18 @@ +<?php + +namespace Tor; + +class AccessControlMiddleware { + public function __invoke($request, $response, $next) { + $response = $response->withHeader('Access-Control-Allow-Origin', $this->torSiteBaseUrl); + $response = $response->withHeader('Access-Control-Allow-Credentials', 'true'); + $response = $response->withHeader('Access-Control-Allow-Headers', 'Content-Type'); + return $next($request, $response); + } + + function __construct($app) { + $this->app = $app; + $this->container = $app->getContainer(); + $this->torSiteBaseUrl = $this->container->get('settings')['torSiteBaseUrl']; + } +} diff --git a/src/middleware.php b/src/middleware.php index a2c120df..dbd629f1 100644 --- a/src/middleware.php +++ b/src/middleware.php @@ -3,4 +3,5 @@
// e.g: $app->add(new \Slim\Csrf\Guard); $app->add(new \Tor\I18nMiddleware($app)); +$app->add(new \Tor\AccessControlMiddleware($app)); $app->add(new RKA\Middleware\IpAddress()); diff --git a/src/routes.php b/src/routes.php index cf75ef92..3c4d63c0 100644 --- a/src/routes.php +++ b/src/routes.php @@ -133,3 +133,7 @@ $app->get('/captcha', function($request, $response, $args) { $controller = new \Tor\Captcha($this); return $controller->generate($request, $response, $args); }); + +$app->options('/{routes:.+}', function ($request, $response, $args) { + return $response; +}); diff --git a/src/settings.php b/src/settings.php index bb6ba7a2..0324bbae 100644 --- a/src/settings.php +++ b/src/settings.php @@ -1,6 +1,11 @@ <?php
define('PP_CONFIG_PATH', __DIR__ . '/../private'); +require PP_CONFIG_PATH . '/settings.local.php'; + +if (!isset($torSiteBaseUrl)) { + $torSiteBaseUrl = 'https://www.torproject.org/'; +}
$config = [ 'settings' => [ @@ -50,6 +55,7 @@ $config = [ 'sandbox' => 'AZc7yGlGGXnOjwt55x4wRGbWHo7Fdj83JAu0lqYruVWVoYa7JfQhy5F_ucy2mR6CjPmpmJwmtHONjTeB', 'production' => 'AbzwWJgUgwGMvTupfvigx1yAj75jNnCj4mFGC_VbiROUi2TfVwPS9IZ5MfqLsSUnXJFSMwaSaTR4FY_A' ], + 'torSiteBaseUrl' => $torSiteBaseUrl, ], ];
tor-commits@lists.torproject.org