62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Pterodactyl\Http\Requests\Server;
|
|
|
|
use Pterodactyl\Http\Requests\FrontendUserFormRequest;
|
|
use Pterodactyl\Contracts\Repository\EggVariableRepositoryInterface;
|
|
|
|
class UpdateStartupParametersFormRequest extends FrontendUserFormRequest
|
|
{
|
|
/**
|
|
* @var array
|
|
*/
|
|
private $validationAttributes = [];
|
|
|
|
/**
|
|
* Determine if the user has permission to update the startup parameters
|
|
* for this server.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function authorize()
|
|
{
|
|
if (! parent::authorize()) {
|
|
return false;
|
|
}
|
|
|
|
return $this->user()->can('edit-startup', $this->attributes->get('server'));
|
|
}
|
|
|
|
/**
|
|
* Validate that all of the required fields were passed and that the environment
|
|
* variable values meet the defined criteria for those fields.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function rules()
|
|
{
|
|
$repository = $this->container->make(EggVariableRepositoryInterface::class);
|
|
|
|
$variables = $repository->getEditableVariables($this->attributes->get('server')->egg_id);
|
|
$rules = $variables->mapWithKeys(function ($variable) {
|
|
$this->validationAttributes['environment.' . $variable->env_variable] = $variable->name;
|
|
|
|
return ['environment.' . $variable->env_variable => $variable->rules];
|
|
})->toArray();
|
|
|
|
return array_merge($rules, [
|
|
'environment' => 'required|array',
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Return attributes to provide better naming conventions for error messages.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function attributes()
|
|
{
|
|
return $this->validationAttributes;
|
|
}
|
|
}
|