35 lines
		
	
	
		
			897 B
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			897 B
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace BookStack\Http\Middleware; | ||
|  | 
 | ||
|  | use Illuminate\Http\Request; | ||
|  | use Illuminate\Session\Middleware\StartSession as Middleware; | ||
|  | 
 | ||
|  | /** | ||
|  |  * An extended version of the default Laravel "StartSession" middleware | ||
|  |  * with customizations applied as required: | ||
|  |  * | ||
|  |  * - Adds filtering for the request URLs stored in session history. | ||
|  |  */ | ||
|  | class StartSessionExtended extends Middleware | ||
|  | { | ||
|  |     protected static array $pathPrefixesExcludedFromHistory = [ | ||
|  |         'uploads/images/' | ||
|  |     ]; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @inheritdoc | ||
|  |      */ | ||
|  |     protected function storeCurrentUrl(Request $request, $session): void | ||
|  |     { | ||
|  |         $requestPath = strtolower($request->path()); | ||
|  |         foreach (static::$pathPrefixesExcludedFromHistory as $excludedPath) { | ||
|  |             if (str_starts_with($requestPath, $excludedPath)) { | ||
|  |                 return; | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         parent::storeCurrentUrl($request, $session); | ||
|  |     } | ||
|  | } |