fix(settings): fix 404 on /settings for root user on cloud instance

- Make Server property nullable in Settings components (Index, Advanced, Updates)
- Add conditional server loading: only load when not on cloud
- Add null checks before using server for DNS validation and proxy configuration
- Fix isInstanceAdmin() to check root team's pivot role directly instead of current team
- Make root team (id=0) bypass subscription check on cloud
- Remove isInstanceAdmin() from main middleware bypass: only settings/admin routes are exempted
- Update isSubscribed() to only check isSubscriptionActive() for navbar consistency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
Andras Bacsai
2025-12-27 16:17:56 +01:00
parent 4a4d64ac31
commit acff543e09
7 changed files with 37 additions and 14 deletions

View File

@@ -384,7 +384,7 @@ function base_url(bool $withPort = true): string
function isSubscribed()
{
return isSubscriptionActive() || auth()->user()->isInstanceAdmin();
return isSubscriptionActive();
}
function isProduction(): bool

View File

@@ -13,6 +13,10 @@ function isSubscriptionActive()
if (! $team) {
return false;
}
// Root team (id=0) doesn't require subscription
if ($team->id === 0) {
return true;
}
$subscription = $team?->subscription;
if (is_null($subscription)) {