diff --git a/app/Http/Middleware/DecideWhatToDoWithUser.php b/app/Http/Middleware/DecideWhatToDoWithUser.php index b62e874cc..dea9f6a9d 100644 --- a/app/Http/Middleware/DecideWhatToDoWithUser.php +++ b/app/Http/Middleware/DecideWhatToDoWithUser.php @@ -27,7 +27,7 @@ public function handle(Request $request, Closure $next): Response return $next($request); } // Instance admins can access settings and admin routes regardless of subscription - if (isInstanceAdmin() && ($request->routeIs('settings.*') || $request->routeIs('settings.index') || $request->path() === 'admin')) { + if (isInstanceAdmin() && ($request->routeIs('settings.*') || $request->path() === 'admin')) { return $next($request); } if (! auth()->user()->hasVerifiedEmail()) { diff --git a/app/Models/User.php b/app/Models/User.php index d64835c42..560f21d0f 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -319,7 +319,7 @@ public function currentTeam(): ?Team return null; } - return Cache::remember('team:'.$this->id, 3600, function () use ($sessionTeamId) { + return Cache::remember('user:'.$this->id.':team:'.$sessionTeamId, 3600, function () use ($sessionTeamId) { return Team::find($sessionTeamId); }); } diff --git a/bootstrap/helpers/shared.php b/bootstrap/helpers/shared.php index f9645fd9f..d6b573965 100644 --- a/bootstrap/helpers/shared.php +++ b/bootstrap/helpers/shared.php @@ -182,8 +182,11 @@ function refreshSession(?Team $team = null): void $team = User::find(Auth::id())->teams->first(); } } + // Clear old cache key format for backwards compatibility Cache::forget('team:'.Auth::id()); - Cache::remember('team:'.Auth::id(), 3600, function () use ($team) { + // Use new cache key format that includes team ID + Cache::forget('user:'.Auth::id().':team:'.$team->id); + Cache::remember('user:'.Auth::id().':team:'.$team->id, 3600, function () use ($team) { return $team; }); session(['currentTeam' => $team]);