mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-19 18:44:46 +02:00
* Add Nullable * Edit filament & AppServiceProvider * Pint * Patch tests * Actually patching tests * Actually patching tests * Remove length * Remove defaultStringLength * Let’s see the differences --------- Co-authored-by: Lance Pioch <git@lance.sh>
This commit is contained in:
parent
482e8ed6b2
commit
aa08e774a1
@ -36,7 +36,7 @@ class CreateDatabaseHost extends CreateRecord
|
||||
->required()
|
||||
->live(onBlur: true)
|
||||
->afterStateUpdated(fn ($state, Forms\Set $set) => $set('name', $state))
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('port')
|
||||
->columnSpan(1)
|
||||
->helperText('The port that MySQL is running on for this host.')
|
||||
@ -57,12 +57,12 @@ class CreateDatabaseHost extends CreateRecord
|
||||
Forms\Components\TextInput::make('username')
|
||||
->helperText('The username of an account that has enough permissions to create new users and databases on the system.')
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('password')
|
||||
->helperText('The password for the database user.')
|
||||
->password()
|
||||
->revealable()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->required(),
|
||||
Forms\Components\Select::make('node_id')
|
||||
->searchable()
|
||||
|
@ -32,7 +32,7 @@ class EditDatabaseHost extends EditRecord
|
||||
->required()
|
||||
->live(onBlur: true)
|
||||
->afterStateUpdated(fn ($state, Forms\Set $set) => $set('name', $state))
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('port')
|
||||
->columnSpan(1)
|
||||
->helperText('The port that MySQL is running on for this host.')
|
||||
@ -52,12 +52,12 @@ class EditDatabaseHost extends EditRecord
|
||||
Forms\Components\TextInput::make('username')
|
||||
->helperText('The username of an account that has enough permissions to create new users and databases on the system.')
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('password')
|
||||
->helperText('The password for the database user.')
|
||||
->password()
|
||||
->revealable()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->required(),
|
||||
Forms\Components\Select::make('node_id')
|
||||
->searchable()
|
||||
|
@ -25,14 +25,14 @@ class CreateDatabase extends CreateRecord
|
||||
->numeric(),
|
||||
Forms\Components\TextInput::make('database')
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('remote')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->default('%'),
|
||||
Forms\Components\TextInput::make('username')
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('password')
|
||||
->password()
|
||||
->revealable()
|
||||
|
@ -26,14 +26,14 @@ class EditDatabase extends EditRecord
|
||||
->numeric(),
|
||||
Forms\Components\TextInput::make('database')
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('remote')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->default('%'),
|
||||
Forms\Components\TextInput::make('username')
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('password')
|
||||
->password()
|
||||
->revealable()
|
||||
|
@ -25,11 +25,11 @@ class CreateEgg extends CreateRecord
|
||||
->schema([
|
||||
Forms\Components\TextInput::make('name')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->columnSpan(['default' => 1, 'sm' => 1, 'md' => 2, 'lg' => 2])
|
||||
->helperText('A simple, human-readable name to use as an identifier for this Egg.'),
|
||||
Forms\Components\TextInput::make('author')
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->required()
|
||||
->email()
|
||||
->columnSpan(['default' => 1, 'sm' => 1, 'md' => 2, 'lg' => 2])
|
||||
@ -88,7 +88,7 @@ class CreateEgg extends CreateRecord
|
||||
->helperText('If you would like to default to settings from another Egg select it from the menu above.'),
|
||||
Forms\Components\TextInput::make('config_stop')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->label('Stop Command')
|
||||
->helperText('The command that should be sent to server processes to stop them gracefully. If you need to send a SIGINT you should enter ^C here.'),
|
||||
Forms\Components\Textarea::make('config_startup')->rows(10)->json()
|
||||
@ -140,7 +140,7 @@ class CreateEgg extends CreateRecord
|
||||
Forms\Components\TextInput::make('name')
|
||||
->live()
|
||||
->debounce(750)
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->columnSpanFull()
|
||||
->afterStateUpdated(fn (Forms\Set $set, $state) => $set('env_variable', str($state)->trim()->snake()->upper()->toString())
|
||||
)
|
||||
@ -148,13 +148,13 @@ class CreateEgg extends CreateRecord
|
||||
Forms\Components\Textarea::make('description')->columnSpanFull(),
|
||||
Forms\Components\TextInput::make('env_variable')
|
||||
->label('Environment Variable')
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->prefix('{{')
|
||||
->suffix('}}')
|
||||
->hintIcon('tabler-code')
|
||||
->hintIconTooltip(fn ($state) => "{{{$state}}}")
|
||||
->required(),
|
||||
Forms\Components\TextInput::make('default_value')->maxLength(191),
|
||||
Forms\Components\TextInput::make('default_value')->maxLength(255),
|
||||
Forms\Components\Fieldset::make('User Permissions')
|
||||
->schema([
|
||||
Forms\Components\Checkbox::make('user_viewable')->label('Viewable'),
|
||||
@ -173,7 +173,7 @@ class CreateEgg extends CreateRecord
|
||||
|
||||
Forms\Components\TextInput::make('script_container')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->default('alpine:3.4'),
|
||||
|
||||
Forms\Components\Select::make('script_entry')
|
||||
|
@ -25,7 +25,7 @@ class EditEgg extends EditRecord
|
||||
->schema([
|
||||
Forms\Components\TextInput::make('name')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->columnSpan(['default' => 1, 'sm' => 1, 'md' => 2, 'lg' => 1])
|
||||
->helperText('A simple, human-readable name to use as an identifier for this Egg.'),
|
||||
Forms\Components\TextInput::make('uuid')
|
||||
@ -42,7 +42,7 @@ class EditEgg extends EditRecord
|
||||
->helperText('A description of this Egg that will be displayed throughout the Panel as needed.'),
|
||||
Forms\Components\TextInput::make('author')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->email()
|
||||
->disabled()
|
||||
->columnSpan(['default' => 1, 'sm' => 1, 'md' => 2, 'lg' => 2])
|
||||
@ -95,7 +95,7 @@ class EditEgg extends EditRecord
|
||||
->relationship('configFrom', 'name', ignoreRecord: true)
|
||||
->helperText('If you would like to default to settings from another Egg select it from the menu above.'),
|
||||
Forms\Components\TextInput::make('config_stop')
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->label('Stop Command')
|
||||
->helperText('The command that should be sent to server processes to stop them gracefully. If you need to send a SIGINT you should enter ^C here.'),
|
||||
Forms\Components\Textarea::make('config_startup')->rows(10)->json()
|
||||
@ -143,7 +143,7 @@ class EditEgg extends EditRecord
|
||||
Forms\Components\TextInput::make('name')
|
||||
->live()
|
||||
->debounce(750)
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->columnSpanFull()
|
||||
->afterStateUpdated(fn (Forms\Set $set, $state) => $set('env_variable', str($state)->trim()->snake()->upper()->toString())
|
||||
)
|
||||
@ -151,13 +151,13 @@ class EditEgg extends EditRecord
|
||||
Forms\Components\Textarea::make('description')->columnSpanFull(),
|
||||
Forms\Components\TextInput::make('env_variable')
|
||||
->label('Environment Variable')
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->prefix('{{')
|
||||
->suffix('}}')
|
||||
->hintIcon('tabler-code')
|
||||
->hintIconTooltip(fn ($state) => "{{{$state}}}")
|
||||
->required(),
|
||||
Forms\Components\TextInput::make('default_value')->maxLength(191),
|
||||
Forms\Components\TextInput::make('default_value')->maxLength(255),
|
||||
Forms\Components\Fieldset::make('User Permissions')
|
||||
->schema([
|
||||
Forms\Components\Checkbox::make('user_viewable')->label('Viewable'),
|
||||
@ -176,12 +176,12 @@ class EditEgg extends EditRecord
|
||||
|
||||
Forms\Components\TextInput::make('script_container')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->default('alpine:3.4'),
|
||||
|
||||
Forms\Components\TextInput::make('script_entry')
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->default('ash'),
|
||||
|
||||
MonacoEditor::make('script_install')
|
||||
|
@ -48,11 +48,11 @@ class CreateMount extends CreateRecord
|
||||
Forms\Components\TextInput::make('source')
|
||||
->required()
|
||||
->helperText('File path on the host system to mount to a container.')
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('target')
|
||||
->required()
|
||||
->helperText('Where the mount will be accessible inside a container.')
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\ToggleButtons::make('user_mountable')
|
||||
->hidden()
|
||||
->label('User mountable?')
|
||||
|
@ -45,11 +45,11 @@ class EditMount extends EditRecord
|
||||
Forms\Components\TextInput::make('source')
|
||||
->required()
|
||||
->helperText('File path on the host system to mount to a container.')
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('target')
|
||||
->required()
|
||||
->helperText('Where the mount will be accessible inside a container.')
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\ToggleButtons::make('user_mountable')
|
||||
->hidden()
|
||||
->label('User mountable?')
|
||||
|
@ -93,7 +93,7 @@ class CreateNode extends CreateRecord
|
||||
|
||||
$set('dns', false);
|
||||
})
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
|
||||
Forms\Components\TextInput::make('ip')
|
||||
->disabled()
|
||||
|
@ -94,7 +94,7 @@ class EditNode extends EditRecord
|
||||
|
||||
$set('dns', false);
|
||||
})
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
|
||||
Forms\Components\TextInput::make('ip')
|
||||
->disabled()
|
||||
|
@ -64,7 +64,7 @@ class CreateServer extends CreateRecord
|
||||
'lg' => 3,
|
||||
])
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
|
||||
Forms\Components\Select::make('owner_id')
|
||||
->prefixIcon('tabler-user')
|
||||
@ -403,7 +403,7 @@ class CreateServer extends CreateRecord
|
||||
|
||||
$text = Forms\Components\TextInput::make('variable_value')
|
||||
->hidden($this->shouldHideComponent(...))
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->required(fn (Forms\Get $get) => in_array('required', explode('|', $get('rules'))))
|
||||
->rules(
|
||||
fn (Forms\Get $get): Closure => function (string $attribute, $value, Closure $fail) use ($get) {
|
||||
|
@ -125,7 +125,7 @@ class EditServer extends EditRecord
|
||||
'lg' => 3,
|
||||
])
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
|
||||
Forms\Components\Select::make('owner_id')
|
||||
->prefixIcon('tabler-user')
|
||||
@ -172,7 +172,7 @@ class EditServer extends EditRecord
|
||||
'md' => 2,
|
||||
'lg' => 3,
|
||||
])
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\Select::make('node_id')
|
||||
->label('Node')
|
||||
->relationship('node', 'name')
|
||||
|
@ -52,7 +52,7 @@ class EditProfile extends \Filament\Pages\Auth\EditProfile
|
||||
->label(trans('strings.username'))
|
||||
->disabled()
|
||||
->readOnly()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->unique(ignoreRecord: true)
|
||||
->autofocus(),
|
||||
|
||||
@ -61,7 +61,7 @@ class EditProfile extends \Filament\Pages\Auth\EditProfile
|
||||
->label(trans('strings.email'))
|
||||
->email()
|
||||
->required()
|
||||
->maxLength(191)
|
||||
->maxLength(255)
|
||||
->unique(ignoreRecord: true),
|
||||
|
||||
TextInput::make('password')
|
||||
|
@ -20,8 +20,8 @@ class EditUser extends EditRecord
|
||||
return $form
|
||||
->schema([
|
||||
Section::make()->schema([
|
||||
Forms\Components\TextInput::make('username')->required()->maxLength(191),
|
||||
Forms\Components\TextInput::make('email')->email()->required()->maxLength(191),
|
||||
Forms\Components\TextInput::make('username')->required()->maxLength(255),
|
||||
Forms\Components\TextInput::make('email')->email()->required()->maxLength(255),
|
||||
|
||||
Forms\Components\TextInput::make('password')
|
||||
->dehydrateStateUsing(fn (string $state): string => Hash::make($state))
|
||||
|
@ -85,12 +85,12 @@ class ListUsers extends ListRecords
|
||||
Forms\Components\TextInput::make('username')
|
||||
->alphaNum()
|
||||
->required()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
Forms\Components\TextInput::make('email')
|
||||
->email()
|
||||
->required()
|
||||
->unique()
|
||||
->maxLength(191),
|
||||
->maxLength(255),
|
||||
|
||||
Forms\Components\TextInput::make('password')
|
||||
->hintIcon('tabler-question-mark')
|
||||
|
@ -9,14 +9,14 @@ class EggFormRequest extends AdminFormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
$rules = [
|
||||
'name' => 'required|string|max:191',
|
||||
'name' => 'required|string|max:255',
|
||||
'description' => 'nullable|string',
|
||||
'docker_images' => 'required|string',
|
||||
'force_outgoing_ip' => 'sometimes|boolean',
|
||||
'file_denylist' => 'array',
|
||||
'startup' => 'required|string',
|
||||
'config_from' => 'sometimes|bail|nullable|numeric',
|
||||
'config_stop' => 'required_without:config_from|nullable|string|max:191',
|
||||
'config_stop' => 'required_without:config_from|nullable|string|max:255',
|
||||
'config_startup' => 'required_without:config_from|nullable|json',
|
||||
'config_logs' => 'required_without:config_from|nullable|json',
|
||||
'config_files' => 'required_without:config_from|nullable|json',
|
||||
|
@ -13,9 +13,9 @@ class EggVariableFormRequest extends AdminFormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'required|string|min:1|max:191',
|
||||
'name' => 'required|string|min:1|max:255',
|
||||
'description' => 'sometimes|nullable|string',
|
||||
'env_variable' => 'required|regex:/^[\w]{1,191}$/|notIn:' . EggVariable::RESERVED_ENV_NAMES,
|
||||
'env_variable' => 'required|regex:/^[\w]{1,255}$/|notIn:' . EggVariable::RESERVED_ENV_NAMES,
|
||||
'options' => 'sometimes|required|array',
|
||||
'rules' => 'bail|required|string',
|
||||
'default_value' => 'present',
|
||||
|
@ -10,7 +10,7 @@ class AllocationFormRequest extends AdminFormRequest
|
||||
{
|
||||
return [
|
||||
'allocation_ip' => 'required|string',
|
||||
'allocation_alias' => 'sometimes|nullable|string|max:191',
|
||||
'allocation_alias' => 'sometimes|nullable|string|max:255',
|
||||
'allocation_ports' => 'required|array',
|
||||
];
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ class AdvancedSettingsFormRequest extends AdminFormRequest
|
||||
{
|
||||
return [
|
||||
'recaptcha:enabled' => 'required|in:true,false',
|
||||
'recaptcha:secret_key' => 'required|string|max:191',
|
||||
'recaptcha:website_key' => 'required|string|max:191',
|
||||
'recaptcha:secret_key' => 'required|string|max:255',
|
||||
'recaptcha:website_key' => 'required|string|max:255',
|
||||
'panel:guzzle:timeout' => 'required|integer|between:1,60',
|
||||
'panel:guzzle:connect_timeout' => 'required|integer|between:1,60',
|
||||
'panel:client_features:allocations:enabled' => 'required|in:true,false',
|
||||
|
@ -13,7 +13,7 @@ class BaseSettingsFormRequest extends AdminFormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'app:name' => 'required|string|max:191',
|
||||
'app:name' => 'required|string|max:255',
|
||||
'panel:auth:2fa_required' => 'required|integer|in:0,1,2',
|
||||
'app:locale' => ['required', 'string', Rule::in(array_keys($this->getAvailableLanguages()))],
|
||||
];
|
||||
|
@ -16,10 +16,10 @@ class MailSettingsFormRequest extends AdminFormRequest
|
||||
'mail:mailers:smtp:host' => 'required|string',
|
||||
'mail:mailers:smtp:port' => 'required|integer|between:1,65535',
|
||||
'mail:mailers:smtp:encryption' => ['present', Rule::in([null, 'tls', 'ssl'])],
|
||||
'mail:mailers:smtp:username' => 'nullable|string|max:191',
|
||||
'mail:mailers:smtp:password' => 'nullable|string|max:191',
|
||||
'mail:mailers:smtp:username' => 'nullable|string|max:255',
|
||||
'mail:mailers:smtp:password' => 'nullable|string|max:255',
|
||||
'mail:from:address' => 'required|string|email',
|
||||
'mail:from:name' => 'nullable|string|max:191',
|
||||
'mail:from:name' => 'nullable|string|max:255',
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -15,7 +15,7 @@ class StoreAllocationRequest extends ApplicationApiRequest
|
||||
{
|
||||
return [
|
||||
'ip' => 'required|string',
|
||||
'alias' => 'sometimes|nullable|string|max:191',
|
||||
'alias' => 'sometimes|nullable|string|max:255',
|
||||
'ports' => 'required|array',
|
||||
'ports.*' => 'string',
|
||||
];
|
||||
|
@ -15,7 +15,7 @@ class StoreBackupRequest extends ClientApiRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'name' => 'nullable|string|max:191',
|
||||
'name' => 'nullable|string|max:255',
|
||||
'is_locked' => 'nullable|boolean',
|
||||
'ignored' => 'nullable|string',
|
||||
];
|
||||
|
@ -14,7 +14,7 @@ class StoreSubuserRequest extends SubuserRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'email' => 'required|email|between:1,191',
|
||||
'email' => 'required|email|between:1,255',
|
||||
'permissions' => 'required|array',
|
||||
'permissions.*' => 'string',
|
||||
];
|
||||
|
@ -16,8 +16,8 @@ class AuditLog extends Model
|
||||
|
||||
public static array $validationRules = [
|
||||
'uuid' => 'required|uuid',
|
||||
'action' => 'required|string|max:191',
|
||||
'subaction' => 'nullable|string|max:191',
|
||||
'action' => 'required|string|max:255',
|
||||
'subaction' => 'nullable|string|max:255',
|
||||
'device' => 'array',
|
||||
'device.ip_address' => 'ip',
|
||||
'device.user_agent' => 'string',
|
||||
|
@ -46,7 +46,7 @@ class DatabaseHost extends Model
|
||||
* Validation rules to assign to this model.
|
||||
*/
|
||||
public static array $validationRules = [
|
||||
'name' => 'required|string|max:191',
|
||||
'name' => 'required|string|max:255',
|
||||
'host' => 'required|string',
|
||||
'port' => 'required|numeric|between:1,65535',
|
||||
'username' => 'required|string|max:32',
|
||||
|
@ -105,7 +105,7 @@ class Egg extends Model
|
||||
|
||||
public static array $validationRules = [
|
||||
'uuid' => 'required|string|size:36',
|
||||
'name' => 'required|string|max:191',
|
||||
'name' => 'required|string|max:255',
|
||||
'description' => 'string|nullable',
|
||||
'features' => 'array|nullable',
|
||||
'author' => 'required|string|email',
|
||||
@ -115,7 +115,7 @@ class Egg extends Model
|
||||
'docker_images.*' => 'required|string',
|
||||
'startup' => 'required|nullable|string',
|
||||
'config_from' => 'sometimes|bail|nullable|numeric|exists:eggs,id',
|
||||
'config_stop' => 'required_without:config_from|nullable|string|max:191',
|
||||
'config_stop' => 'required_without:config_from|nullable|string|max:255',
|
||||
'config_startup' => 'required_without:config_from|nullable|json',
|
||||
'config_logs' => 'required_without:config_from|nullable|json',
|
||||
'config_files' => 'required_without:config_from|nullable|json',
|
||||
|
@ -52,9 +52,9 @@ class EggVariable extends Model
|
||||
public static array $validationRules = [
|
||||
'egg_id' => 'exists:eggs,id',
|
||||
'sort' => 'nullable',
|
||||
'name' => 'required|string|between:1,191',
|
||||
'name' => 'required|string|between:1,255',
|
||||
'description' => 'string',
|
||||
'env_variable' => 'required|alphaDash|between:1,191|notIn:' . self::RESERVED_ENV_NAMES,
|
||||
'env_variable' => 'required|alphaDash|between:1,255|notIn:' . self::RESERVED_ENV_NAMES,
|
||||
'default_value' => 'string',
|
||||
'user_viewable' => 'boolean',
|
||||
'user_editable' => 'boolean',
|
||||
|
@ -41,7 +41,7 @@ class Mount extends Model
|
||||
*/
|
||||
public static array $validationRules = [
|
||||
'name' => 'required|string|min:2|max:64|unique:mounts,name',
|
||||
'description' => 'nullable|string|max:191',
|
||||
'description' => 'nullable|string|max:255',
|
||||
'source' => 'required|string',
|
||||
'target' => 'required|string',
|
||||
'read_only' => 'sometimes|boolean',
|
||||
|
@ -76,7 +76,7 @@ class Schedule extends Model
|
||||
|
||||
public static array $validationRules = [
|
||||
'server_id' => 'required|exists:servers,id',
|
||||
'name' => 'required|string|max:191',
|
||||
'name' => 'required|string|max:255',
|
||||
'cron_day_of_week' => 'required|string',
|
||||
'cron_month' => 'required|string',
|
||||
'cron_day_of_month' => 'required|string',
|
||||
|
@ -139,9 +139,9 @@ class Server extends Model
|
||||
protected $guarded = ['id', self::CREATED_AT, self::UPDATED_AT, 'deleted_at', 'installed_at'];
|
||||
|
||||
public static array $validationRules = [
|
||||
'external_id' => 'sometimes|nullable|string|between:1,191|unique:servers',
|
||||
'external_id' => 'sometimes|nullable|string|between:1,255|unique:servers',
|
||||
'owner_id' => 'required|integer|exists:users,id',
|
||||
'name' => 'required|string|min:1|max:191',
|
||||
'name' => 'required|string|min:1|max:255',
|
||||
'node_id' => 'required|exists:nodes,id',
|
||||
'description' => 'string',
|
||||
'status' => 'nullable|string',
|
||||
@ -156,7 +156,7 @@ class Server extends Model
|
||||
'egg_id' => 'required|exists:eggs,id',
|
||||
'startup' => 'required|string',
|
||||
'skip_scripts' => 'sometimes|boolean',
|
||||
'image' => 'required|string|max:191',
|
||||
'image' => 'required|string|max:255',
|
||||
'database_limit' => 'present|nullable|integer|min:0',
|
||||
'allocation_limit' => 'sometimes|nullable|integer|min:0',
|
||||
'backup_limit' => 'present|nullable|integer|min:0',
|
||||
|
@ -21,7 +21,7 @@ class Setting extends Model
|
||||
protected $fillable = ['key', 'value'];
|
||||
|
||||
public static array $validationRules = [
|
||||
'key' => 'required|string|between:1,191',
|
||||
'key' => 'required|string|between:1,255',
|
||||
'value' => 'string',
|
||||
];
|
||||
|
||||
|
@ -155,11 +155,11 @@ class User extends Model implements AuthenticatableContract, AuthorizableContrac
|
||||
*/
|
||||
public static array $validationRules = [
|
||||
'uuid' => 'nullable|string|size:36|unique:users,uuid',
|
||||
'email' => 'required|email|between:1,191|unique:users,email',
|
||||
'external_id' => 'sometimes|nullable|string|max:191|unique:users,external_id',
|
||||
'username' => 'required|between:1,191|unique:users,username',
|
||||
'name_first' => 'nullable|string|between:0,191',
|
||||
'name_last' => 'nullable|string|between:0,191',
|
||||
'email' => 'required|email|between:1,255|unique:users,email',
|
||||
'external_id' => 'sometimes|nullable|string|max:255|unique:users,external_id',
|
||||
'username' => 'required|between:1,255|unique:users,username',
|
||||
'name_first' => 'nullable|string|between:0,255',
|
||||
'name_last' => 'nullable|string|between:0,255',
|
||||
'password' => 'sometimes|nullable|string',
|
||||
'root_admin' => 'boolean',
|
||||
'language' => 'string',
|
||||
|
@ -16,7 +16,6 @@ use Illuminate\Support\Facades\Broadcast;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Facades\URL;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
@ -30,8 +29,6 @@ class AppServiceProvider extends ServiceProvider
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
Schema::defaultStringLength(191);
|
||||
|
||||
$versionData = app(SoftwareVersionService::class)->versionData();
|
||||
View::share('appVersion', $versionData['version'] ?? 'undefined');
|
||||
View::share('appIsGit', $versionData['is_git'] ?? false);
|
||||
|
289
database/migrations/2024_06_11_220722_update_field_length.php
Normal file
289
database/migrations/2024_06_11_220722_update_field_length.php
Normal file
@ -0,0 +1,289 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('activity_log_subjects', function (Blueprint $table) {
|
||||
$table->string('subject_type')->change();
|
||||
});
|
||||
|
||||
Schema::table('activity_logs', function (Blueprint $table) {
|
||||
$table->string('event')->change();
|
||||
$table->string('ip')->change();
|
||||
$table->string('actor_type')->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('allocations', function (Blueprint $table) {
|
||||
$table->string('ip')->change();
|
||||
$table->string('notes')->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('audit_logs', function (Blueprint $table) {
|
||||
$table->string('action')->change();
|
||||
$table->string('subaction')->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('backups', function (Blueprint $table) {
|
||||
$table->string('name')->change();
|
||||
$table->string('disk')->change();
|
||||
$table->string('checksum')->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('database_hosts', function (Blueprint $table) {
|
||||
$table->string('name')->change();
|
||||
$table->string('host')->change();
|
||||
$table->string('username')->change();
|
||||
});
|
||||
|
||||
Schema::table('databases', function (Blueprint $table) {
|
||||
$table->string('database')->change();
|
||||
$table->string('username')->change();
|
||||
$table->string('remote')->default('%')->change();
|
||||
});
|
||||
|
||||
Schema::table('egg_variables', function (Blueprint $table) {
|
||||
$table->string('name')->change();
|
||||
$table->string('env_variable')->change();
|
||||
});
|
||||
|
||||
Schema::table('eggs', function (Blueprint $table) {
|
||||
$table->string('author')->change();
|
||||
$table->string('name')->change();
|
||||
$table->string('config_stop')->nullable()->default(null)->change();
|
||||
$table->string('script_container')->default('alpine:3.4')->change();
|
||||
$table->string('script_entry')->default('ash')->change();
|
||||
});
|
||||
|
||||
Schema::table('failed_jobs', function (Blueprint $table) {
|
||||
$table->string('uuid')->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('jobs', function (Blueprint $table) {
|
||||
$table->string('queue')->change();
|
||||
});
|
||||
|
||||
Schema::table('migrations', function (Blueprint $table) {
|
||||
$table->string('migration')->change();
|
||||
});
|
||||
|
||||
Schema::table('mounts', function (Blueprint $table) {
|
||||
$table->string('name')->change();
|
||||
$table->string('source')->change();
|
||||
$table->string('target')->change();
|
||||
});
|
||||
|
||||
Schema::table('nodes', function (Blueprint $table) {
|
||||
$table->string('name')->change();
|
||||
$table->string('fqdn')->change();
|
||||
$table->string('scheme')->default('https')->change();
|
||||
$table->string('daemon_sftp_alias')->nullable()->default(null)->change();
|
||||
$table->string('daemon_base')->change();
|
||||
});
|
||||
|
||||
Schema::table('notifications', function (Blueprint $table) {
|
||||
$table->string('id')->change();
|
||||
$table->string('type')->change();
|
||||
$table->string('notifiable_type')->change();
|
||||
});
|
||||
|
||||
Schema::table('password_resets', function (Blueprint $table) {
|
||||
$table->string('email')->change();
|
||||
$table->string('token')->change();
|
||||
});
|
||||
|
||||
Schema::table('recovery_tokens', function (Blueprint $table) {
|
||||
$table->string('token')->change();
|
||||
});
|
||||
|
||||
Schema::table('schedules', function (Blueprint $table) {
|
||||
$table->string('name')->change();
|
||||
$table->string('cron_day_of_week')->change();
|
||||
$table->string('cron_month')->change();
|
||||
$table->string('cron_day_of_month')->change();
|
||||
$table->string('cron_hour')->change();
|
||||
$table->string('cron_minute')->change();
|
||||
});
|
||||
|
||||
Schema::table('servers', function (Blueprint $table) {
|
||||
$table->string('external_id')->nullable()->default(null)->change();
|
||||
$table->string('name')->change();
|
||||
$table->string('status')->nullable()->default(null)->change();
|
||||
$table->string('threads')->nullable()->default(null)->change();
|
||||
$table->string('image')->change();
|
||||
});
|
||||
|
||||
Schema::table('sessions', function (Blueprint $table) {
|
||||
$table->string('id')->change();
|
||||
});
|
||||
|
||||
Schema::table('settings', function (Blueprint $table) {
|
||||
$table->string('key')->change();
|
||||
});
|
||||
|
||||
Schema::table('tasks', function (Blueprint $table) {
|
||||
$table->string('action')->change();
|
||||
});
|
||||
|
||||
Schema::table('user_ssh_keys', function (Blueprint $table) {
|
||||
$table->string('name')->change();
|
||||
$table->string('fingerprint')->change();
|
||||
});
|
||||
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->string('external_id')->nullable()->default(null)->change();
|
||||
$table->string('username')->change();
|
||||
$table->string('email')->change();
|
||||
$table->string('name_first')->nullable()->default(null)->change();
|
||||
$table->string('name_last')->nullable()->default(null)->change();
|
||||
$table->string('remember_token')->nullable()->default(null)->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('activity_log_subjects', function (Blueprint $table) {
|
||||
$table->string('subject_type', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('activity_logs', function (Blueprint $table) {
|
||||
$table->string('event', 191)->change();
|
||||
$table->string('ip', 191)->change();
|
||||
$table->string('actor_type', 191)->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('allocations', function (Blueprint $table) {
|
||||
$table->string('ip', 191)->change();
|
||||
$table->string('notes', 191)->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('audit_logs', function (Blueprint $table) {
|
||||
$table->string('action', 191)->change();
|
||||
$table->string('subaction', 191)->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('backups', function (Blueprint $table) {
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('disk', 191)->change();
|
||||
$table->string('checksum', 191)->nullable()->default(null)->change();
|
||||
});
|
||||
Schema::table('database_hosts', function (Blueprint $table) {
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('host', 191)->change();
|
||||
$table->string('username', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('databases', function (Blueprint $table) {
|
||||
$table->string('database', 191)->change();
|
||||
$table->string('username', 191)->change();
|
||||
$table->string('remote', 191)->default('%', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('egg_variables', function (Blueprint $table) {
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('env_variable', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('eggs', function (Blueprint $table) {
|
||||
$table->string('author', 191)->change();
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('config_stop', 191)->nullable()->default(null)->change();
|
||||
$table->string('script_container', 191)->default('alpine:3.4', 191)->change();
|
||||
$table->string('script_entry', 191)->default('ash', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('failed_jobs', function (Blueprint $table) {
|
||||
$table->string('uuid', 191)->nullable()->default(null)->change();
|
||||
});
|
||||
|
||||
Schema::table('jobs', function (Blueprint $table) {
|
||||
$table->string('queue', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('migrations', function (Blueprint $table) {
|
||||
$table->string('migration', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('mounts', function (Blueprint $table) {
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('source', 191)->change();
|
||||
$table->string('target', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('nodes', function (Blueprint $table) {
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('fqdn', 191)->change();
|
||||
$table->string('scheme', 191)->default('https', 191)->change();
|
||||
$table->string('daemon_sftp_alias', 191)->nullable()->default(null)->change();
|
||||
$table->string('daemon_base', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('notifications', function (Blueprint $table) {
|
||||
$table->string('id', 191)->change();
|
||||
$table->string('type', 191)->change();
|
||||
$table->string('notifiable_type', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('password_resets', function (Blueprint $table) {
|
||||
$table->string('email', 191)->change();
|
||||
$table->string('token', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('recovery_tokens', function (Blueprint $table) {
|
||||
$table->string('token', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('schedules', function (Blueprint $table) {
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('cron_day_of_week', 191)->change();
|
||||
$table->string('cron_month', 191)->change();
|
||||
$table->string('cron_day_of_month', 191)->change();
|
||||
$table->string('cron_hour', 191)->change();
|
||||
$table->string('cron_minute', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('servers', function (Blueprint $table) {
|
||||
$table->string('external_id', 191)->nullable()->default(null)->change();
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('status', 191)->nullable()->default(null)->change();
|
||||
$table->string('threads', 191)->nullable()->default(null)->change();
|
||||
$table->string('image', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('sessions', function (Blueprint $table) {
|
||||
$table->string('id', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('settings', function (Blueprint $table) {
|
||||
$table->string('key', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('tasks', function (Blueprint $table) {
|
||||
$table->string('action', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('user_ssh_keys', function (Blueprint $table) {
|
||||
$table->string('name', 191)->change();
|
||||
$table->string('fingerprint', 191)->change();
|
||||
});
|
||||
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->string('external_id', 191)->nullable()->default(null)->change();
|
||||
$table->string('username', 191)->change();
|
||||
$table->string('email', 191)->change();
|
||||
$table->string('name_first', 191)->nullable()->default(null)->change();
|
||||
$table->string('name_last', 191)->nullable()->default(null)->change();
|
||||
$table->string('remember_token', 191)->nullable()->default(null)->change();
|
||||
});
|
||||
}
|
||||
};
|
File diff suppressed because it is too large
Load Diff
@ -80,7 +80,7 @@ class CreateServerSubuserTest extends ClientApiIntegrationTestCase
|
||||
{
|
||||
[$user, $server] = $this->generateTestAccount();
|
||||
|
||||
$email = str_repeat(Str::random(20), 9) . '1@gmail.com'; // 191 is the hard limit for the column in MySQL.
|
||||
$email = str_repeat(Str::random(35), 7) . '@gmail.com'; // 255 is the hard limit for the column in MySQL.
|
||||
|
||||
$response = $this->actingAs($user)->postJson($this->link($server) . '/users', [
|
||||
'email' => $email,
|
||||
@ -99,7 +99,7 @@ class CreateServerSubuserTest extends ClientApiIntegrationTestCase
|
||||
]);
|
||||
|
||||
$response->assertStatus(Response::HTTP_UNPROCESSABLE_ENTITY);
|
||||
$response->assertJsonPath('errors.0.detail', 'The email must be between 1 and 191 characters.');
|
||||
$response->assertJsonPath('errors.0.detail', 'The email must be between 1 and 255 characters.');
|
||||
$response->assertJsonPath('errors.0.meta.source_field', 'email');
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user