Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pterodactyl
GitHub Repository: pterodactyl/panel
Path: blob/1.0-develop/app/Http/Requests/Admin/Settings/MailSettingsFormRequest.php
10277 views
1
<?php
2
3
namespace Pterodactyl\Http\Requests\Admin\Settings;
4
5
use Illuminate\Validation\Rule;
6
use Pterodactyl\Http\Requests\Admin\AdminFormRequest;
7
8
class MailSettingsFormRequest extends AdminFormRequest
9
{
10
/**
11
* Return rules to validate mail settings POST data against.
12
*/
13
public function rules(): array
14
{
15
return [
16
'mail:mailers:smtp:host' => 'required|string',
17
'mail:mailers:smtp:port' => 'required|integer|between:1,65535',
18
'mail:mailers:smtp:encryption' => ['present', Rule::in([null, 'tls', 'ssl'])],
19
'mail:mailers:smtp:username' => 'nullable|string|max:191',
20
'mail:mailers:smtp:password' => 'nullable|string|max:191',
21
'mail:from:address' => 'required|string|email',
22
'mail:from:name' => 'nullable|string|max:191',
23
];
24
}
25
26
/**
27
* Override the default normalization function for this type of request
28
* as we need to accept empty values on the keys.
29
*/
30
public function normalize(?array $only = null): array
31
{
32
$keys = array_flip(array_keys($this->rules()));
33
34
if (empty($this->input('mail:mailers:smtp:password'))) {
35
unset($keys['mail:mailers:smtp:password']);
36
}
37
38
return $this->only(array_flip($keys));
39
}
40
}
41
42