mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 00:34:44 +02:00
Convert variable "rules" to array (#507)
* convert variable "rules" to array * allow importing eggs with string rules * fix tests * update stock eggs to rules array
This commit is contained in:
parent
0ff429215d
commit
c2b1a98d29
@ -134,7 +134,7 @@ class CreateEgg extends CreateRecord
|
||||
->mutateRelationshipDataBeforeCreateUsing(function (array $data): array {
|
||||
$data['default_value'] ??= '';
|
||||
$data['description'] ??= '';
|
||||
$data['rules'] ??= '';
|
||||
$data['rules'] ??= [];
|
||||
$data['user_viewable'] ??= '';
|
||||
$data['user_editable'] ??= '';
|
||||
|
||||
@ -143,7 +143,7 @@ class CreateEgg extends CreateRecord
|
||||
->mutateRelationshipDataBeforeSaveUsing(function (array $data): array {
|
||||
$data['default_value'] ??= '';
|
||||
$data['description'] ??= '';
|
||||
$data['rules'] ??= '';
|
||||
$data['rules'] ??= [];
|
||||
$data['user_viewable'] ??= '';
|
||||
$data['user_editable'] ??= '';
|
||||
|
||||
@ -173,7 +173,30 @@ class CreateEgg extends CreateRecord
|
||||
Checkbox::make('user_viewable')->label('Viewable'),
|
||||
Checkbox::make('user_editable')->label('Editable'),
|
||||
]),
|
||||
Textarea::make('rules')->columnSpanFull(),
|
||||
TagsInput::make('rules')
|
||||
->columnSpanFull()
|
||||
->placeholder('Add Rule')
|
||||
->reorderable()
|
||||
->suggestions([
|
||||
'required',
|
||||
'nullable',
|
||||
'string',
|
||||
'integer',
|
||||
'numeric',
|
||||
'boolean',
|
||||
'alpha',
|
||||
'alpha_dash',
|
||||
'alpha_num',
|
||||
'url',
|
||||
'email',
|
||||
'regex:',
|
||||
'min:',
|
||||
'max:',
|
||||
'between:',
|
||||
'between:1024,65535',
|
||||
'in:',
|
||||
'in:true,false',
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
Tab::make('Install Script')
|
||||
|
@ -144,7 +144,7 @@ class EditEgg extends EditRecord
|
||||
->mutateRelationshipDataBeforeCreateUsing(function (array $data): array {
|
||||
$data['default_value'] ??= '';
|
||||
$data['description'] ??= '';
|
||||
$data['rules'] ??= '';
|
||||
$data['rules'] ??= [];
|
||||
$data['user_viewable'] ??= '';
|
||||
$data['user_editable'] ??= '';
|
||||
|
||||
@ -153,7 +153,7 @@ class EditEgg extends EditRecord
|
||||
->mutateRelationshipDataBeforeSaveUsing(function (array $data): array {
|
||||
$data['default_value'] ??= '';
|
||||
$data['description'] ??= '';
|
||||
$data['rules'] ??= '';
|
||||
$data['rules'] ??= [];
|
||||
$data['user_viewable'] ??= '';
|
||||
$data['user_editable'] ??= '';
|
||||
|
||||
@ -183,7 +183,30 @@ class EditEgg extends EditRecord
|
||||
Checkbox::make('user_viewable')->label('Viewable'),
|
||||
Checkbox::make('user_editable')->label('Editable'),
|
||||
]),
|
||||
TextInput::make('rules')->columnSpanFull(),
|
||||
TagsInput::make('rules')
|
||||
->columnSpanFull()
|
||||
->placeholder('Add Rule')
|
||||
->reorderable()
|
||||
->suggestions([
|
||||
'required',
|
||||
'nullable',
|
||||
'string',
|
||||
'integer',
|
||||
'numeric',
|
||||
'boolean',
|
||||
'alpha',
|
||||
'alpha_dash',
|
||||
'alpha_num',
|
||||
'url',
|
||||
'email',
|
||||
'regex:',
|
||||
'min:',
|
||||
'max:',
|
||||
'between:',
|
||||
'between:1024,65535',
|
||||
'in:',
|
||||
'in:true,false',
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
Tab::make('Install Script')
|
||||
|
@ -6,6 +6,7 @@ use App\Filament\Resources\ServerResource;
|
||||
use App\Models\Allocation;
|
||||
use App\Models\Egg;
|
||||
use App\Models\Node;
|
||||
use App\Models\ServerVariable;
|
||||
use App\Models\User;
|
||||
use App\Services\Allocations\AssignmentService;
|
||||
use App\Services\Servers\RandomWordService;
|
||||
@ -443,8 +444,7 @@ class CreateServer extends CreateRecord
|
||||
|
||||
$text = Forms\Components\TextInput::make('variable_value')
|
||||
->hidden($this->shouldHideComponent(...))
|
||||
->maxLength(255)
|
||||
->required(fn (Forms\Get $get) => in_array('required', explode('|', $get('rules'))))
|
||||
->required(fn (ServerVariable $serverVariable) => $serverVariable->variable->getRequiredAttribute())
|
||||
->rules(
|
||||
fn (Forms\Get $get): Closure => function (string $attribute, $value, Closure $fail) use ($get) {
|
||||
$validator = Validator::make(['validatorkey' => $value], [
|
||||
@ -806,11 +806,9 @@ class CreateServer extends CreateRecord
|
||||
return $service->handle($data);
|
||||
}
|
||||
|
||||
private function shouldHideComponent(Forms\Get $get, Forms\Components\Component $component): bool
|
||||
private function shouldHideComponent(ServerVariable $serverVariable, Forms\Components\Component $component): bool
|
||||
{
|
||||
$containsRuleIn = str($get('rules'))->explode('|')->reduce(
|
||||
fn ($result, $value) => $result === true && !str($value)->startsWith('in:'), true
|
||||
);
|
||||
$containsRuleIn = array_first($serverVariable->variable->rules, fn ($value) => str($value)->startsWith('in:'), false);
|
||||
|
||||
if ($component instanceof Forms\Components\Select) {
|
||||
return $containsRuleIn;
|
||||
@ -823,11 +821,9 @@ class CreateServer extends CreateRecord
|
||||
throw new \Exception('Component type not supported: ' . $component::class);
|
||||
}
|
||||
|
||||
private function getSelectOptionsFromRules(Forms\Get $get): array
|
||||
private function getSelectOptionsFromRules(ServerVariable $serverVariable): array
|
||||
{
|
||||
$inRule = str($get('rules'))->explode('|')->reduce(
|
||||
fn ($result, $value) => str($value)->startsWith('in:') ? $value : $result, ''
|
||||
);
|
||||
$inRule = array_first($serverVariable->variable->rules, fn ($value) => str($value)->startsWith('in:'));
|
||||
|
||||
return str($inRule)
|
||||
->after('in:')
|
||||
|
@ -489,7 +489,7 @@ class EditServer extends EditRecord
|
||||
|
||||
$text = Forms\Components\TextInput::make('variable_value')
|
||||
->hidden($this->shouldHideComponent(...))
|
||||
->required(fn (ServerVariable $serverVariable) => in_array('required', explode('|', $serverVariable->variable->rules)))
|
||||
->required(fn (ServerVariable $serverVariable) => $serverVariable->variable->getRequiredAttribute())
|
||||
->rules([
|
||||
fn (ServerVariable $serverVariable): Closure => function (string $attribute, $value, Closure $fail) use ($serverVariable) {
|
||||
$validator = Validator::make(['validatorkey' => $value], [
|
||||
@ -516,7 +516,7 @@ class EditServer extends EditRecord
|
||||
->live(onBlur: true)
|
||||
->hintIcon('tabler-code')
|
||||
->label(fn (ServerVariable $serverVariable) => $serverVariable->variable->name)
|
||||
->hintIconTooltip(fn (ServerVariable $serverVariable) => $serverVariable->variable->rules)
|
||||
->hintIconTooltip(fn (ServerVariable $serverVariable) => implode('|', $serverVariable->variable->rules))
|
||||
->prefix(fn (ServerVariable $serverVariable) => '{{' . $serverVariable->variable->env_variable . '}}')
|
||||
->helperText(fn (ServerVariable $serverVariable) => empty($serverVariable->variable->description) ? '—' : $serverVariable->variable->description);
|
||||
}
|
||||
@ -757,28 +757,24 @@ class EditServer extends EditRecord
|
||||
];
|
||||
}
|
||||
|
||||
private function shouldHideComponent(Forms\Get $get, Forms\Components\Component $component): bool
|
||||
private function shouldHideComponent(ServerVariable $serverVariable, Forms\Components\Component $component): bool
|
||||
{
|
||||
$containsRuleIn = str($get('rules'))->explode('|')->reduce(
|
||||
fn ($result, $value) => $result === true && !str($value)->startsWith('in:'), true
|
||||
);
|
||||
$containsRuleIn = array_first($serverVariable->variable->rules, fn ($value) => str($value)->startsWith('in:'), false);
|
||||
|
||||
if ($component instanceof Forms\Components\Select) {
|
||||
return $containsRuleIn;
|
||||
return !$containsRuleIn;
|
||||
}
|
||||
|
||||
if ($component instanceof Forms\Components\TextInput) {
|
||||
return !$containsRuleIn;
|
||||
return $containsRuleIn;
|
||||
}
|
||||
|
||||
throw new \Exception('Component type not supported: ' . $component::class);
|
||||
}
|
||||
|
||||
private function getSelectOptionsFromRules(Forms\Get $get): array
|
||||
private function getSelectOptionsFromRules(ServerVariable $serverVariable): array
|
||||
{
|
||||
$inRule = str($get('rules'))->explode('|')->reduce(
|
||||
fn ($result, $value) => str($value)->startsWith('in:') ? $value : $result, ''
|
||||
);
|
||||
$inRule = array_first($serverVariable->variable->rules, fn ($value) => str($value)->startsWith('in:'));
|
||||
|
||||
return str($inRule)
|
||||
->after('in:')
|
||||
|
@ -15,7 +15,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
* @property string $default_value
|
||||
* @property bool $user_viewable
|
||||
* @property bool $user_editable
|
||||
* @property string $rules
|
||||
* @property array $rules
|
||||
* @property \Carbon\CarbonImmutable $created_at
|
||||
* @property \Carbon\CarbonImmutable $updated_at
|
||||
* @property bool $required
|
||||
@ -58,12 +58,14 @@ class EggVariable extends Model
|
||||
'default_value' => 'string',
|
||||
'user_viewable' => 'boolean',
|
||||
'user_editable' => 'boolean',
|
||||
'rules' => 'string',
|
||||
'rules' => 'array',
|
||||
'rules.*' => 'string',
|
||||
];
|
||||
|
||||
protected $attributes = [
|
||||
'user_editable' => 0,
|
||||
'user_viewable' => 0,
|
||||
'rules' => '[]',
|
||||
];
|
||||
|
||||
protected function casts(): array
|
||||
@ -72,6 +74,7 @@ class EggVariable extends Model
|
||||
'egg_id' => 'integer',
|
||||
'user_viewable' => 'bool',
|
||||
'user_editable' => 'bool',
|
||||
'rules' => 'array',
|
||||
'created_at' => 'immutable_datetime',
|
||||
'updated_at' => 'immutable_datetime',
|
||||
];
|
||||
@ -79,7 +82,7 @@ class EggVariable extends Model
|
||||
|
||||
public function getRequiredAttribute(): bool
|
||||
{
|
||||
return in_array('required', explode('|', $this->rules));
|
||||
return in_array('required', $this->rules);
|
||||
}
|
||||
|
||||
public function egg(): HasOne
|
||||
|
@ -54,6 +54,8 @@ class EggImporterService
|
||||
// Update existing variables or create new ones.
|
||||
foreach ($parsed['variables'] ?? [] as $variable) {
|
||||
EggVariable::unguarded(function () use ($egg, $variable) {
|
||||
$variable['rules'] = is_array($variable['rules']) ? $variable['rules'] : explode('|', $variable['rules']);
|
||||
|
||||
$egg->variables()->updateOrCreate([
|
||||
'env_variable' => $variable['env_variable'],
|
||||
], Collection::make($variable)->except(['egg_id', 'env_variable'])->toArray());
|
||||
|
@ -40,7 +40,7 @@ class VariableCreationService
|
||||
throw new ReservedVariableNameException(sprintf('Cannot use the protected name %s for this environment variable.', array_get($data, 'env_variable')));
|
||||
}
|
||||
|
||||
if (!empty($data['rules'] ?? '')) {
|
||||
if (!empty($data['rules'] ?? [])) {
|
||||
$this->validateRules($data['rules']);
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ class VariableCreationService
|
||||
'default_value' => $data['default_value'] ?? '',
|
||||
'user_viewable' => in_array('user_viewable', $options),
|
||||
'user_editable' => in_array('user_editable', $options),
|
||||
'rules' => $data['rules'] ?? '',
|
||||
'rules' => $data['rules'] ?? [],
|
||||
]);
|
||||
|
||||
return $eggVariable;
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Services\Eggs\Variables;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
use App\Models\EggVariable;
|
||||
use App\Exceptions\DisplayException;
|
||||
use App\Traits\Services\ValidatesValidationRules;
|
||||
@ -54,12 +53,8 @@ class VariableUpdateService
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($data['rules'] ?? '')) {
|
||||
$this->validateRules(
|
||||
(is_string($data['rules']) && Str::contains($data['rules'], ';;'))
|
||||
? explode(';;', $data['rules'])
|
||||
: $data['rules']
|
||||
);
|
||||
if (!empty($data['rules'] ?? [])) {
|
||||
$this->validateRules($data['rules']);
|
||||
}
|
||||
|
||||
$options = array_get($data, 'options') ?? [];
|
||||
@ -71,7 +66,7 @@ class VariableUpdateService
|
||||
'default_value' => $data['default_value'] ?? '',
|
||||
'user_viewable' => in_array('user_viewable', $options),
|
||||
'user_editable' => in_array('user_editable', $options),
|
||||
'rules' => $data['rules'] ?? '',
|
||||
'rules' => $data['rules'] ?? [],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ class EggVariableTransformer extends BaseClientTransformer
|
||||
'default_value' => $variable->default_value,
|
||||
'server_value' => $variable->server_value,
|
||||
'is_editable' => $variable->user_editable,
|
||||
'rules' => $variable->rules,
|
||||
'rules' => implode('|', $variable->rules),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/minecraft\/egg-bungeecord.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:33:51+00:00",
|
||||
"exported_at": "2024-07-25T12:03:12+00:00",
|
||||
"name": "Bungeecord",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "9e6b409e-4028-4947-aea8-50a2c404c271",
|
||||
@ -44,7 +44,11 @@
|
||||
"default_value": "latest",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|alpha_num|between:1,6",
|
||||
"rules": [
|
||||
"required",
|
||||
"alpha_num",
|
||||
"between:1,6"
|
||||
],
|
||||
"sort": null,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -55,7 +59,10 @@
|
||||
"default_value": "bungeecord.jar",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
|
||||
],
|
||||
"sort": null,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/minecraft\/egg-forge-minecraft.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:33:51+00:00",
|
||||
"exported_at": "2024-07-25T12:03:19+00:00",
|
||||
"name": "Forge Minecraft",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "ed072427-f209-4603-875c-f540c6dd5a65",
|
||||
@ -44,7 +44,10 @@
|
||||
"default_value": "server.jar",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -55,7 +58,11 @@
|
||||
"default_value": "latest",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:9",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:9"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -66,7 +73,11 @@
|
||||
"default_value": "recommended",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|in:recommended,latest",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"in:recommended,latest"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -77,7 +88,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|regex:\/^[0-9\\.\\-]+$\/",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"regex:\/^[0-9\\.\\-]+$\/"
|
||||
],
|
||||
"sort": 4,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/minecraft\/egg-paper.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:33:52+00:00",
|
||||
"exported_at": "2024-07-25T12:03:43+00:00",
|
||||
"name": "Paper",
|
||||
"author": "parker@example.com",
|
||||
"uuid": "5da37ef6-58da-4169-90a6-e683e1721247",
|
||||
@ -44,7 +44,11 @@
|
||||
"default_value": "latest",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string|max:20",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string",
|
||||
"max:20"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -55,7 +59,10 @@
|
||||
"default_value": "server.jar",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -66,7 +73,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "nullable|string",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -77,7 +87,11 @@
|
||||
"default_value": "latest",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:20",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:20"
|
||||
],
|
||||
"sort": 4,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/minecraft\/egg-sponge--sponge-vanilla.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:02+00:00",
|
||||
"exported_at": "2024-07-25T12:03:55+00:00",
|
||||
"name": "Sponge (SpongeVanilla)",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "f0d2f88f-1ff3-42a0-b03f-ac44c5571e6d",
|
||||
@ -44,7 +44,10 @@
|
||||
"default_value": "1.12.2-7.3.0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^([a-zA-Z0-9.\\-_]+)$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^([a-zA-Z0-9.\\-_]+)$\/"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -55,7 +58,10 @@
|
||||
"default_value": "server.jar",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/minecraft\/egg-vanilla-minecraft.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:02+00:00",
|
||||
"exported_at": "2024-07-25T12:04:05+00:00",
|
||||
"name": "Vanilla Minecraft",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "9ac39f3d-0c34-4d93-8174-c52ab9e6c57b",
|
||||
@ -44,7 +44,10 @@
|
||||
"default_value": "server.jar",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^([\\w\\d._-]+)(\\.jar)$\/"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -55,7 +58,11 @@
|
||||
"default_value": "latest",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|between:3,15",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"between:3,15"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/rust\/egg-rust.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:09+00:00",
|
||||
"exported_at": "2024-07-25T12:06:17+00:00",
|
||||
"name": "Rust",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "bace2dfb-209c-452a-9459-7d6f340b07ae",
|
||||
@ -38,7 +38,11 @@
|
||||
"default_value": "A Rust Server",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:60",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:60"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -49,7 +53,10 @@
|
||||
"default_value": "vanilla",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|in:vanilla,oxide,carbon",
|
||||
"rules": [
|
||||
"required",
|
||||
"in:vanilla,oxide,carbon"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -60,7 +67,11 @@
|
||||
"default_value": "Procedural Map",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:20",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:20"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -71,7 +82,10 @@
|
||||
"default_value": "Powered by Panel",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string",
|
||||
"rules": [
|
||||
"required",
|
||||
"string"
|
||||
],
|
||||
"sort": 4,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -82,7 +96,10 @@
|
||||
"default_value": "http:\/\/example.com",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|url",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"url"
|
||||
],
|
||||
"sort": 5,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -93,7 +110,10 @@
|
||||
"default_value": "3000",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer"
|
||||
],
|
||||
"sort": 6,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -104,7 +124,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string"
|
||||
],
|
||||
"sort": 7,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -115,7 +138,10 @@
|
||||
"default_value": "40",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer"
|
||||
],
|
||||
"sort": 8,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -126,7 +152,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|url",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"url"
|
||||
],
|
||||
"sort": 9,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -137,7 +166,10 @@
|
||||
"default_value": "27017",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer"
|
||||
],
|
||||
"sort": 10,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -148,7 +180,10 @@
|
||||
"default_value": "28016",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer"
|
||||
],
|
||||
"sort": 11,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -159,7 +194,11 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^[\\w.-]*$\/|max:64",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^[\\w.-]*$\/",
|
||||
"max:64"
|
||||
],
|
||||
"sort": 12,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -170,7 +209,10 @@
|
||||
"default_value": "60",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer"
|
||||
],
|
||||
"sort": 13,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -181,7 +223,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string"
|
||||
],
|
||||
"sort": 14,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -192,7 +237,10 @@
|
||||
"default_value": "28082",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer"
|
||||
],
|
||||
"sort": 15,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -203,7 +251,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|url",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"url"
|
||||
],
|
||||
"sort": 16,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -214,7 +265,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|url",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"url"
|
||||
],
|
||||
"sort": 17,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -225,7 +279,11 @@
|
||||
"default_value": "258550",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|string|in:258550",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"in:258550"
|
||||
],
|
||||
"sort": 18,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/source-engine\/egg-counter--strike--global-offensive.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:03+00:00",
|
||||
"exported_at": "2024-07-25T12:04:25+00:00",
|
||||
"name": "Counter-Strike: Global Offensive",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "437c367d-06be-498f-a604-fdad135504d7",
|
||||
@ -39,7 +39,11 @@
|
||||
"default_value": "de_dust2",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|alpha_dash",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"alpha_dash"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -50,7 +54,12 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|alpha_num|size:32",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"alpha_num",
|
||||
"size:32"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -61,7 +70,11 @@
|
||||
"default_value": "740",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|string|max:20",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:20"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/source-engine\/egg-custom-source-engine-game.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:04+00:00",
|
||||
"exported_at": "2024-07-25T12:03:27+00:00",
|
||||
"name": "Custom Source Engine Game",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "2a42d0c2-c0ba-4067-9a0a-9b95d77a3490",
|
||||
@ -38,7 +38,11 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|numeric|digits_between:1,6",
|
||||
"rules": [
|
||||
"required",
|
||||
"numeric",
|
||||
"digits_between:1,6"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -49,7 +53,11 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|alpha_dash|between:1,100",
|
||||
"rules": [
|
||||
"required",
|
||||
"alpha_dash",
|
||||
"between:1,100"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -60,7 +68,11 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|alpha_dash",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"alpha_dash"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -71,7 +83,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string"
|
||||
],
|
||||
"sort": 4,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -82,7 +97,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string"
|
||||
],
|
||||
"sort": 5,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -93,7 +111,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string"
|
||||
],
|
||||
"sort": 6,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/source-engine\/egg-garrys-mod.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:04+00:00",
|
||||
"exported_at": "2024-07-25T12:05:02+00:00",
|
||||
"name": "Garrys Mod",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "60ef81d4-30a2-4d98-ab64-f59c69e2f915",
|
||||
@ -39,7 +39,11 @@
|
||||
"default_value": "gm_flatgrass",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|alpha_dash",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"alpha_dash"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -50,7 +54,12 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|string|alpha_num|size:32",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"string",
|
||||
"alpha_num",
|
||||
"size:32"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -61,7 +70,11 @@
|
||||
"default_value": "4020",
|
||||
"user_viewable": false,
|
||||
"user_editable": false,
|
||||
"rules": "required|string|max:20",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:20"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -72,7 +85,10 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "nullable|integer",
|
||||
"rules": [
|
||||
"nullable",
|
||||
"integer"
|
||||
],
|
||||
"sort": 4,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -83,7 +99,10 @@
|
||||
"default_value": "sandbox",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string",
|
||||
"rules": [
|
||||
"required",
|
||||
"string"
|
||||
],
|
||||
"sort": 5,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -94,7 +113,11 @@
|
||||
"default_value": "32",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer|max:128",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer",
|
||||
"max:128"
|
||||
],
|
||||
"sort": 6,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -105,7 +128,11 @@
|
||||
"default_value": "22",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|integer|max:100",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer",
|
||||
"max:100"
|
||||
],
|
||||
"sort": 7,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -116,7 +143,10 @@
|
||||
"default_value": "0",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|boolean",
|
||||
"rules": [
|
||||
"required",
|
||||
"boolean"
|
||||
],
|
||||
"sort": 8,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/source-engine\/egg-insurgency.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:05+00:00",
|
||||
"exported_at": "2024-07-25T12:05:30+00:00",
|
||||
"name": "Insurgency",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "a5702286-655b-4069-bf1e-925c7300b61a",
|
||||
@ -38,7 +38,10 @@
|
||||
"default_value": "237410",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|regex:\/^(237410)$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^(237410)$\/"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -49,7 +52,10 @@
|
||||
"default_value": "sinjar",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^(\\w{1,20})$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^(\\w{1,20})$\/"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/source-engine\/egg-team-fortress2.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:06+00:00",
|
||||
"exported_at": "2024-07-25T12:05:42+00:00",
|
||||
"name": "Team Fortress 2",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "7f8eb681-b2c8-4bf8-b9f4-d79ff70b6e5d",
|
||||
@ -39,7 +39,10 @@
|
||||
"default_value": "232250",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|in:232250",
|
||||
"rules": [
|
||||
"required",
|
||||
"in:232250"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -50,7 +53,10 @@
|
||||
"default_value": "cp_dustbowl",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|regex:\/^(\\w{1,20})$\/",
|
||||
"rules": [
|
||||
"required",
|
||||
"regex:\/^(\\w{1,20})$\/"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -61,7 +67,12 @@
|
||||
"default_value": "",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|alpha_num|size:32",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"alpha_num",
|
||||
"size:32"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/voice-servers\/egg-mumble-server.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:07+00:00",
|
||||
"exported_at": "2024-07-25T12:05:52+00:00",
|
||||
"name": "Mumble Server",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "727ee758-7fb2-4979-972b-d3eba4e1e9f0",
|
||||
@ -36,7 +36,11 @@
|
||||
"default_value": "100",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|numeric|digits_between:1,5",
|
||||
"rules": [
|
||||
"required",
|
||||
"numeric",
|
||||
"digits_between:1,5"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
"version": "PTDL_v2",
|
||||
"update_url": "https:\/\/github.com\/pelican-dev\/panel\/raw\/main\/database\/Seeders\/eggs\/voice-servers\/egg-teamspeak3-server.json"
|
||||
},
|
||||
"exported_at": "2024-07-03T14:34:08+00:00",
|
||||
"exported_at": "2024-07-25T12:06:05+00:00",
|
||||
"name": "Teamspeak3 Server",
|
||||
"author": "panel@example.com",
|
||||
"uuid": "983b1fac-d322-4d5f-a636-436127326b37",
|
||||
@ -36,7 +36,11 @@
|
||||
"default_value": "latest",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:6",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:6"
|
||||
],
|
||||
"sort": 1,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -47,7 +51,11 @@
|
||||
"default_value": "30033",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer|between:1025,65535",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer",
|
||||
"between:1025,65535"
|
||||
],
|
||||
"sort": 2,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -58,7 +66,11 @@
|
||||
"default_value": "10011",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer|between:1025,65535",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer",
|
||||
"between:1025,65535"
|
||||
],
|
||||
"sort": 3,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -69,7 +81,11 @@
|
||||
"default_value": "raw,http,ssh",
|
||||
"user_viewable": true,
|
||||
"user_editable": true,
|
||||
"rules": "required|string|max:12",
|
||||
"rules": [
|
||||
"required",
|
||||
"string",
|
||||
"max:12"
|
||||
],
|
||||
"sort": 4,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -80,7 +96,11 @@
|
||||
"default_value": "10022",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer|between:1025,65535",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer",
|
||||
"between:1025,65535"
|
||||
],
|
||||
"sort": 5,
|
||||
"field_type": "text"
|
||||
},
|
||||
@ -91,7 +111,11 @@
|
||||
"default_value": "10080",
|
||||
"user_viewable": true,
|
||||
"user_editable": false,
|
||||
"rules": "required|integer|between:1025,65535",
|
||||
"rules": [
|
||||
"required",
|
||||
"integer",
|
||||
"between:1025,65535"
|
||||
],
|
||||
"sort": 6,
|
||||
"field_type": "text"
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('egg_variables', function (Blueprint $table) {
|
||||
$table->json('rules')->change();
|
||||
});
|
||||
|
||||
DB::table('egg_variables')->select(['id', 'rules'])->cursor()->each(function ($eggVariable) {
|
||||
DB::table('egg_variables')->where('id', $eggVariable->id)->update(['rules' => explode('|', $eggVariable->rules)]);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('api_keys', function (Blueprint $table) {
|
||||
$table->text('rules')->change();
|
||||
});
|
||||
|
||||
DB::table('egg_variables')->select(['id', 'rules'])->cursor()->each(function ($eggVariable) {
|
||||
DB::table('egg_variables')->where('id', $eggVariable->id)->update(['rules' => implode('|', json_decode($eggVariable->rules))]);
|
||||
});
|
||||
}
|
||||
};
|
@ -120,7 +120,7 @@ class UpdateStartupVariableTest extends ClientApiIntegrationTestCase
|
||||
[$user, $server] = $this->generateTestAccount();
|
||||
|
||||
$egg = $this->cloneEggAndVariables($server->egg);
|
||||
$egg->variables()->first()->update(['rules' => 'nullable|string']);
|
||||
$egg->variables()->first()->update(['rules' => ['nullable', 'string']]);
|
||||
|
||||
$server->fill(['egg_id' => $egg->id])->save();
|
||||
$server->refresh();
|
||||
|
@ -120,7 +120,7 @@ class VariableValidatorServiceTest extends IntegrationTestCase
|
||||
$egg = $this->cloneEggAndVariables($this->egg);
|
||||
$egg->variables()->where('env_variable', '!=', 'BUNGEE_VERSION')->delete();
|
||||
|
||||
$egg->variables()->update(['rules' => 'nullable|string']);
|
||||
$egg->variables()->update(['rules' => ['nullable', 'string']]);
|
||||
|
||||
$response = $this->getService()->handle($egg->id, []);
|
||||
$this->assertCount(1, $response);
|
||||
|
Loading…
x
Reference in New Issue
Block a user