Move out view variables until after our session has been setup. This was needed so that auth()->user() could be resolved correctly and needed to be done after we have started the session and swapped in the users cookies

This commit is contained in:
Deon George 2025-04-26 14:26:36 +10:00
parent e0fdc49b41
commit 5f8eb2bb91
3 changed files with 40 additions and 11 deletions

View File

@ -7,7 +7,6 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Config;
use App\Classes\LDAP\Server; use App\Classes\LDAP\Server;
use App\Ldap\User;
/** /**
* This sets up our application session with any required values, ultimately for cache optimisation reasons * This sets up our application session with any required values, ultimately for cache optimisation reasons
@ -25,9 +24,6 @@ class ApplicationSession
{ {
Config::set('server',new Server); Config::set('server',new Server);
view()->share('server', Config::get('server'));
view()->share('user', auth()->user() ?: new User);
return $next($request); return $next($request);
} }
} }

View File

@ -0,0 +1,30 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Config;
use App\Ldap\User;
/**
* This sets up our application session with any required values, ultimately for cache optimisation reasons
*/
class ViewVariables
{
/**
* Handle an incoming request.
*
* @param Request $request
* @param Closure $next
* @return mixed
*/
public function handle(Request $request,Closure $next): mixed
{
view()->share('server',Config::get('server'));
view()->share('user',auth()->user() ?: new User);
return $next($request);
}
}

View File

@ -5,7 +5,7 @@ use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions; use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware; use Illuminate\Foundation\Configuration\Middleware;
use App\Http\Middleware\{AllowAnonymous,ApplicationSession,CheckUpdate,SwapinAuthUser}; use App\Http\Middleware\{AllowAnonymous,ApplicationSession,CheckUpdate,SwapinAuthUser,ViewVariables};
return Application::configure(basePath: dirname(__DIR__)) return Application::configure(basePath: dirname(__DIR__))
->withRouting( ->withRouting(
@ -15,16 +15,19 @@ return Application::configure(basePath: dirname(__DIR__))
health: '/up', health: '/up',
) )
->withMiddleware(function (Middleware $middleware) { ->withMiddleware(function (Middleware $middleware) {
$middleware->appendToGroup('web', [ $middleware->appendToGroup(
SwapinAuthUser::class, group: 'web',
ApplicationSession::class, middleware: [
CheckUpdate::class, ApplicationSession::class,
]); SwapinAuthUser::class,
ViewVariables::class,
CheckUpdate::class,
]);
$middleware->prependToGroup('api', [ $middleware->prependToGroup('api', [
EncryptCookies::class, EncryptCookies::class,
SwapinAuthUser::class,
ApplicationSession::class, ApplicationSession::class,
SwapinAuthUser::class,
AllowAnonymous::class, AllowAnonymous::class,
]); ]);