mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-31 09:07:32 -04:00 
			
		
		
		
	* Fix for CORs error where file download were being prevented by headers * Fixes for CORs and File downloads * give contextual error messages for invalid route actions * Clean up LoginController for OAuth Testing * Quote Actions * Invoice and Quote Actions * Fix for client currency
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\Middleware;
 | |
| 
 | |
| use Closure;
 | |
| use Illuminate\Support\Facades\Response;
 | |
| use Symfony\Component\HttpFoundation\BinaryFileResponse;
 | |
| 
 | |
| class Cors
 | |
| {
 | |
| 
 | |
|   public function handle($request, Closure $next)
 | |
|   {
 | |
| 
 | |
|         if($request->getMethod() == "OPTIONS") {
 | |
| 	        header("Access-Control-Allow-Origin: *");
 | |
| 
 | |
| 	        // ALLOW OPTIONS METHOD
 | |
| 	        $headers = [
 | |
| 	            'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
 | |
| 	            'Access-Control-Allow-Headers'=> 'X-API-SECRET,X-API-TOKEN,DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'
 | |
| 	        ];
 | |
| 
 | |
|             return Response::make('OK', 200, $headers);
 | |
|     
 | |
|         }
 | |
| 
 | |
| 
 | |
|     /* Work around for file downloads where the response cannot contain have headers set */
 | |
|     // if($request instanceOf BinaryFileResponse)
 | |
|     //   return $next($request);
 | |
|     // else
 | |
|     // return $next($request)
 | |
|     //   ->header('Access-Control-Allow-Origin', '*')
 | |
|     //   ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
 | |
|     //   ->header('Access-Control-Allow-Headers', 'X-API-SECRET,X-API-TOKEN,DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range');
 | |
| 
 | |
|     $response = $next($request);
 | |
| 
 | |
|     $response->headers->set('Access-Control-Allow-Origin' , '*');
 | |
|     $response->headers->set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
 | |
|     $response->headers->set('Access-Control-Allow-Headers', 'X-API-SECRET,X-API-TOKEN,DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range');
 | |
| 
 | |
|     return $response;
 | |
| 
 | |
|   }
 | |
| 
 | |
| } |