mirror of
https://github.com/tiennm99/coolify.git
synced 2026-04-17 17:21:04 +00:00
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:
@@ -27,7 +27,7 @@ class DecideWhatToDoWithUser
|
||||
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 @@ class User extends Authenticatable implements SendsEmail
|
||||
|
||||
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 @@ class User extends Authenticatable implements SendsEmail
|
||||
|
||||
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 @@ class User extends Authenticatable implements SendsEmail
|
||||
|
||||
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 @@ class User extends Authenticatable implements SendsEmail
|
||||
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');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user