fix(user): use $this instead of Auth::user() in User model methods
Fix isInstanceAdmin(), currentTeam(), otherTeams(), and role() methods to operate on the actual User instance instead of always using the authenticated user. This ensures correct behavior when these methods are called on non-authenticated user instances (e.g., in ActivityMonitor). Also fix settings route check to use routeIs() instead of path matching. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
acff543e09
commit
2cf915aed8
2 changed files with 8 additions and 8 deletions
|
|
@ -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() && (Str::startsWith($request->path(), 'settings') || $request->path() === 'admin')) {
|
||||
if (isInstanceAdmin() && ($request->routeIs('settings.*') || $request->routeIs('settings.index') || $request->path() === 'admin')) {
|
||||
return $next($request);
|
||||
}
|
||||
if (! auth()->user()->hasVerifiedEmail()) {
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ public function isAdminFromSession()
|
|||
|
||||
public function isInstanceAdmin()
|
||||
{
|
||||
$found_root_team = Auth::user()->teams->filter(function ($team) {
|
||||
$found_root_team = $this->teams->filter(function ($team) {
|
||||
if ($team->id == 0) {
|
||||
$role = $team->pivot->role;
|
||||
if ($role !== 'admin' && $role !== 'owner') {
|
||||
|
|
@ -313,9 +313,9 @@ public function isInstanceAdmin()
|
|||
|
||||
public function currentTeam()
|
||||
{
|
||||
return Cache::remember('team:'.Auth::id(), 3600, function () {
|
||||
if (is_null(data_get(session('currentTeam'), 'id')) && Auth::user()->teams->count() > 0) {
|
||||
return Auth::user()->teams[0];
|
||||
return Cache::remember('team:'.$this->id, 3600, function () {
|
||||
if (is_null(data_get(session('currentTeam'), 'id')) && $this->teams->count() > 0) {
|
||||
return $this->teams[0];
|
||||
}
|
||||
|
||||
return Team::find(session('currentTeam')->id);
|
||||
|
|
@ -324,7 +324,7 @@ public function currentTeam()
|
|||
|
||||
public function otherTeams()
|
||||
{
|
||||
return Auth::user()->teams->filter(function ($team) {
|
||||
return $this->teams->filter(function ($team) {
|
||||
return $team->id != currentTeam()->id;
|
||||
});
|
||||
}
|
||||
|
|
@ -334,9 +334,9 @@ public function role()
|
|||
if (data_get($this, 'pivot')) {
|
||||
return $this->pivot->role;
|
||||
}
|
||||
$user = Auth::user()->teams->where('id', currentTeam()->id)->first();
|
||||
$team = $this->teams->where('id', currentTeam()->id)->first();
|
||||
|
||||
return data_get($user, 'pivot.role');
|
||||
return data_get($team, 'pivot.role');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue