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);
 | 
						|
    }
 | 
						|
}
 |