Skip to content

Commit 566733f

Browse files
committed
add subdomains compatibility to user creatable servers
1 parent 231486d commit 566733f

3 files changed

Lines changed: 31 additions & 2 deletions

File tree

user-creatable-servers/config/user-creatable-servers.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
'database_limit' => (int) env('UCS_DEFAULT_DATABASE_LIMIT', 0),
55
'allocation_limit' => (int) env('UCS_DEFAULT_ALLOCATION_LIMIT', 0),
66
'backup_limit' => (int) env('UCS_DEFAULT_BACKUP_LIMIT', 0),
7+
'subdomain_limit' => (int) env('UCS_DEFAULT_SUBDOMAIN_LIMIT', 0),
78

89
'can_users_update_servers' => (bool) env('UCS_CAN_USERS_UPDATE_SERVERS', true),
910
'can_users_delete_servers' => (bool) env('UCS_CAN_USERS_DELETE_SERVERS', false),

user-creatable-servers/src/Models/UserResourceLimits.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use App\Models\User;
99
use App\Services\Servers\ServerCreationService;
1010
use Carbon\Carbon;
11+
use Exception;
1112
use Illuminate\Database\Eloquent\Model;
1213
use Illuminate\Database\Eloquent\Relations\BelongsTo;
1314

@@ -151,7 +152,16 @@ public function createServer(string $name, int|Egg $egg, int $cpu, int $memory,
151152
/** @var ServerCreationService $service */
152153
$service = app(ServerCreationService::class);
153154

154-
return $service->handle($data, $object);
155+
$server = $service->handle($data, $object);
156+
157+
try {
158+
$server->forceFill([
159+
'subdomain_limit' => config('user-creatable-servers.subdomain_limit'),
160+
])->save();
161+
} catch (Exception) {
162+
}
163+
164+
return $server;
155165
}
156166

157167
return false;

user-creatable-servers/src/UserCreatableServersPlugin.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
namespace Boy132\UserCreatableServers;
44

55
use App\Contracts\Plugins\HasPluginSettings;
6+
use App\Enums\PluginStatus;
67
use App\Models\Egg;
8+
use App\Models\Plugin as PluginModel;
79
use App\Traits\EnvironmentWriterTrait;
810
use Filament\Contracts\Plugin;
911
use Filament\Forms\Components\Select;
@@ -49,7 +51,7 @@ public function getSettingsForm(): array
4951
{
5052
return [
5153
Section::make('Limits')
52-
->columns(3)
54+
->columns(fn () => $this->hasSubdomainsPlugin() ? 4 : 3)
5355
->schema([
5456
TextInput::make('database_limit')
5557
->label('Default database limit')
@@ -69,6 +71,13 @@ public function getSettingsForm(): array
6971
->numeric()
7072
->minValue(0)
7173
->default(fn () => config('user-creatable-servers.backup_limit')),
74+
TextInput::make('subdomain_limit')
75+
->label('Default subdomain limit')
76+
->visible(fn () => $this->hasSubdomainsPlugin())
77+
->required()
78+
->numeric()
79+
->minValue(0)
80+
->default(fn () => config('user-creatable-servers.subdomain_limit')),
7281
]),
7382
Section::make('User Settings')
7483
->columns()
@@ -119,6 +128,7 @@ public function saveSettings(array $data): void
119128
'UCS_DEFAULT_DATABASE_LIMIT' => $data['database_limit'],
120129
'UCS_DEFAULT_ALLOCATION_LIMIT' => $data['allocation_limit'],
121130
'UCS_DEFAULT_BACKUP_LIMIT' => $data['backup_limit'],
131+
'UCS_DEFAULT_SUBDOMAIN_LIMIT' => $data['subdomain_limit'],
122132
'UCS_CAN_USERS_UPDATE_SERVERS' => $data['can_users_update_servers'] ? 'true' : 'false',
123133
'UCS_CAN_USERS_DELETE_SERVERS' => $data['can_users_delete_servers'] ? 'true' : 'false',
124134
'UCS_DEPLOYMENT_TAGS' => implode(',', $data['deployment_tags']),
@@ -131,4 +141,12 @@ public function saveSettings(array $data): void
131141
->success()
132142
->send();
133143
}
144+
145+
public function hasSubdomainsPlugin(): bool
146+
{
147+
/** @var ?PluginModel $subdomains */
148+
$subdomains = PluginModel::find('subdomains');
149+
150+
return $subdomains && $subdomains->status === PluginStatus::Enabled;
151+
}
134152
}

0 commit comments

Comments
 (0)