From f12abf66183a836d8c7750728e039345521d1fa8 Mon Sep 17 00:00:00 2001 From: dpordomingo Date: Tue, 24 Sep 2013 18:44:51 +0200 Subject: [PATCH 1/2] Access-Control-Allow-Origin && Access-Control-Allow-Methods --- src/Level3/Silex/Controller.php | 34 ++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/Level3/Silex/Controller.php b/src/Level3/Silex/Controller.php index 2138b34..8a763e4 100644 --- a/src/Level3/Silex/Controller.php +++ b/src/Level3/Silex/Controller.php @@ -21,6 +21,7 @@ class Controller private $processor; private $requestFactory; private $allowedOrigin = ''; + private $allowedMethods = ''; public function __construct(RequestProcessor $processor, RequestFactory $requestFactory) { @@ -33,16 +34,28 @@ public function setAllowedOrigin($allowedOrigin) $this->allowedOrigin = $allowedOrigin; } + public function setAllowedMethods($allowedMethods) + { + $this->allowedMethods = $allowedMethods; + } + + protected function allowOrigin(Response $response, $method){ + $response->setHeader('Access-Control-Allow-Origin',$this->allowedOrigin); + $response->setHeader('Access-Control-Allow-Methods',$this->allowedMethods); + return $response; + } + public function options(Request $request) { $headers = $request->headers->all(); $headers['Access-Control-Allow-Origin'] = $this->allowedOrigin; - + $headers['Access-Control-Allow-Methods'] = $this->allowedMethods; if (isset($headers['access-control-request-headers'])) { $headers['Access-Control-Allow-Headers'] = $headers['access-control-request-headers']; } unset($headers['access-control-request-headers']); + unset($headers['access-control-request-method']); unset($headers['user-agent']); unset($headers['origin']); unset($headers['accept']); @@ -56,33 +69,40 @@ public function find(Request $request) { $level3Request = $this->createLevel3Request($request); $response = $this->processor->find($level3Request); - - $response->addHeader('Access-Control-Allow-Origin', '*'); + $this->allowOrigin($response,'find'); return $response; } public function get(Request $request) { $level3Request = $this->createLevel3Request($request); - return $this->processor->get($level3Request); + $response = $this->processor->get($level3Request); + $this->allowOrigin($response,'get'); + return $response; } public function post(Request $request) { $level3Request = $this->createLevel3Request($request); - return $this->processor->post($level3Request); + $response = $this->processor->post($level3Request); + $this->allowOrigin($response,'post'); + return $response; } public function put(Request $request) { $level3Request = $this->createLevel3Request($request); - return $this->processor->put($level3Request); + $response = $this->processor->put($level3Request); + $this->allowOrigin($response,'put'); + return $response; } public function delete(Request $request) { $level3Request = $this->createLevel3Request($request); - return $this->processor->delete($level3Request); + $response = $this->processor->delete($level3Request); + $this->allowOrigin($response,'delete'); + return $response; } From 72b1786cb27a6518b367efa3b82132d4551dde01 Mon Sep 17 00:00:00 2001 From: Philip Thomas Date: Wed, 25 Sep 2013 10:45:50 +0200 Subject: [PATCH 2/2] =?UTF-8?q?cambios=20de=20m=C3=A1ximo=20(switch=20post?= =?UTF-8?q?/put)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Level3/Silex/RepositoryMapper.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Level3/Silex/RepositoryMapper.php b/src/Level3/Silex/RepositoryMapper.php index 4008ecd..078a22a 100644 --- a/src/Level3/Silex/RepositoryMapper.php +++ b/src/Level3/Silex/RepositoryMapper.php @@ -43,14 +43,14 @@ public function mapGet($resourceKey, $uri) public function mapPost($resourceKey, $uri) { $this->app-> - post($uri, 'level3.controller:post')-> + put($uri, 'level3.controller:post')-> bind(sprintf('%s:post', $resourceKey)); } public function mapPut($resourceKey, $uri) { $this->app-> - put($uri, 'level3.controller:put')-> + post($uri, 'level3.controller:put')-> bind(sprintf('%s:put', $resourceKey)); }