misc_pterodactyl-panel/app/Models/EggVariable.php
Dane Everitt 08bdc9705f
[L6] Update composer dependencies to support L6
Drops all of the eloquence requirements, this is going to break a shit load of code, needs to happen tired of this package always holding us back.

Quite confident in my ability to write custom code to do the basic validation we need.

Searching should be a fun nightmare to deal with later...
2019-09-04 21:00:34 -07:00

94 lines
2.1 KiB
PHP

<?php
namespace Pterodactyl\Models;
class EggVariable extends Validable
{
/**
* The resource name for this model when it is transformed into an
* API representation using fractal.
*/
const RESOURCE_NAME = 'egg_variable';
/**
* Reserved environment variable names.
*
* @var string
*/
const RESERVED_ENV_NAMES = 'SERVER_MEMORY,SERVER_IP,SERVER_PORT,ENV,HOME,USER,STARTUP,SERVER_UUID,UUID';
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'egg_variables';
/**
* Fields that are not mass assignable.
*
* @var array
*/
protected $guarded = ['id', 'created_at', 'updated_at'];
/**
* Cast values to correct type.
*
* @var array
*/
protected $casts = [
'egg_id' => 'integer',
'user_viewable' => 'integer',
'user_editable' => 'integer',
];
/**
* @var array
*/
protected static $applicationRules = [
'name' => 'required',
'env_variable' => 'required',
'rules' => 'required',
];
/**
* @var array
*/
protected static $dataIntegrityRules = [
'egg_id' => 'exists:eggs,id',
'name' => 'string|between:1,255',
'description' => 'string',
'env_variable' => 'regex:/^[\w]{1,255}$/|notIn:' . self::RESERVED_ENV_NAMES,
'default_value' => 'string',
'user_viewable' => 'boolean',
'user_editable' => 'boolean',
'rules' => 'string',
];
/**
* @var array
*/
protected $attributes = [
'user_editable' => 0,
'user_viewable' => 0,
];
/**
* @param $value
* @return bool
*/
public function getRequiredAttribute($value)
{
return $this->rules === 'required' || str_contains($this->rules, ['required|', '|required']);
}
/**
* Return server variables associated with this variable.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function serverVariable()
{
return $this->hasMany(ServerVariable::class, 'variable_id');
}
}