mirror of
https://github.com/pterodactyl/panel.git
synced 2024-11-22 00:52:43 +01:00
admin: tweaks to validation and rendering
This commit is contained in:
parent
319ca683f8
commit
f671046947
@ -69,7 +69,7 @@ class EggVariableController extends Controller
|
|||||||
{
|
{
|
||||||
$this->updateService->handle($variable, $request->normalize());
|
$this->updateService->handle($variable, $request->normalize());
|
||||||
$this->alert->success(trans('admin/nests.variables.notices.variable_updated', [
|
$this->alert->success(trans('admin/nests.variables.notices.variable_updated', [
|
||||||
'variable' => $variable->name,
|
'variable' => htmlspecialchars($variable->name),
|
||||||
]))->flash();
|
]))->flash();
|
||||||
|
|
||||||
return redirect()->route('admin.nests.egg.variables', $egg->id);
|
return redirect()->route('admin.nests.egg.variables', $egg->id);
|
||||||
@ -82,7 +82,7 @@ class EggVariableController extends Controller
|
|||||||
{
|
{
|
||||||
$this->variableRepository->delete($variable->id);
|
$this->variableRepository->delete($variable->id);
|
||||||
$this->alert->success(trans('admin/nests.variables.notices.variable_deleted', [
|
$this->alert->success(trans('admin/nests.variables.notices.variable_deleted', [
|
||||||
'variable' => $variable->name,
|
'variable' => htmlspecialchars($variable->name),
|
||||||
]))->flash();
|
]))->flash();
|
||||||
|
|
||||||
return redirect()->route('admin.nests.egg.variables', $egg);
|
return redirect()->route('admin.nests.egg.variables', $egg);
|
||||||
|
@ -56,7 +56,7 @@ class NestController extends Controller
|
|||||||
public function store(StoreNestFormRequest $request): RedirectResponse
|
public function store(StoreNestFormRequest $request): RedirectResponse
|
||||||
{
|
{
|
||||||
$nest = $this->nestCreationService->handle($request->normalize());
|
$nest = $this->nestCreationService->handle($request->normalize());
|
||||||
$this->alert->success(trans('admin/nests.notices.created', ['name' => $nest->name]))->flash();
|
$this->alert->success(trans('admin/nests.notices.created', ['name' => htmlspecialchars($nest->name)]))->flash();
|
||||||
|
|
||||||
return redirect()->route('admin.nests.view', $nest->id);
|
return redirect()->route('admin.nests.view', $nest->id);
|
||||||
}
|
}
|
||||||
|
@ -131,7 +131,7 @@ class NodesController extends Controller
|
|||||||
['ip', '=', $request->input('ip')],
|
['ip', '=', $request->input('ip')],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->alert->success(trans('admin/node.notices.unallocated_deleted', ['ip' => $request->input('ip')]))
|
$this->alert->success(trans('admin/node.notices.unallocated_deleted', ['ip' => htmlspecialchars($request->input('ip'))]))
|
||||||
->flash();
|
->flash();
|
||||||
|
|
||||||
return redirect()->route('admin.nodes.view.allocation', $node);
|
return redirect()->route('admin.nodes.view.allocation', $node);
|
||||||
|
@ -11,7 +11,7 @@ class EggFormRequest extends AdminFormRequest
|
|||||||
$rules = [
|
$rules = [
|
||||||
'name' => 'required|string|max:191',
|
'name' => 'required|string|max:191',
|
||||||
'description' => 'nullable|string',
|
'description' => 'nullable|string',
|
||||||
'docker_images' => ['required', 'string', 'max:191', 'regex:/^([a-zA-Z0-9 .#_\/\-]*)(\|*)([a-zA-Z0-9 .\/:@]*)$/'],
|
'docker_images' => ['required', 'string', 'regex:/^[\w#\.\/\- ]*\|*[\w\.\/\-:@ ]*$/im'],
|
||||||
'force_outgoing_ip' => 'sometimes|boolean',
|
'force_outgoing_ip' => 'sometimes|boolean',
|
||||||
'file_denylist' => 'array',
|
'file_denylist' => 'array',
|
||||||
'startup' => 'required|string',
|
'startup' => 'required|string',
|
||||||
|
@ -9,7 +9,7 @@ class StoreNestFormRequest extends AdminFormRequest
|
|||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'name' => 'required|string|min:1|max:191',
|
'name' => 'required|string|min:1|max:191|regex:/^[\w\- ]+$/',
|
||||||
'description' => 'string|nullable',
|
'description' => 'string|nullable',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ class SetDockerImageRequest extends ClientApiRequest implements ClientPermission
|
|||||||
Assert::isInstanceOf($server, Server::class);
|
Assert::isInstanceOf($server, Server::class);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'docker_image' => ['required', 'string', 'max:191', 'regex:/^([a-zA-Z0-9 .#_\/\-]*)(\|*)([a-zA-Z0-9 .\/:@]*)$/', Rule::in(array_values($server->egg->docker_images))],
|
'docker_image' => ['required', 'string', 'max:191', 'regex:/^[\w#\.\/\- ]*\|*[\w\.\/\-:@ ]*$/', Rule::in(array_values($server->egg->docker_images))],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,7 +123,7 @@ class Egg extends Model
|
|||||||
'file_denylist' => 'array|nullable',
|
'file_denylist' => 'array|nullable',
|
||||||
'file_denylist.*' => 'string',
|
'file_denylist.*' => 'string',
|
||||||
'docker_images' => 'required|array|min:1',
|
'docker_images' => 'required|array|min:1',
|
||||||
'docker_images.*' => ['required', 'string', 'max:191', 'regex:/^([a-zA-Z0-9 .#_\/\-]*)(\|*)([a-zA-Z0-9 .\/:@]*)$/'],
|
'docker_images.*' => ['required', 'string', 'max:191', 'regex:/^[\w#\.\/\- ]*\|*[\w\.\/\-:@ ]*$/'],
|
||||||
'startup' => 'required|nullable|string',
|
'startup' => 'required|nullable|string',
|
||||||
'config_from' => 'sometimes|bail|nullable|numeric|exists:eggs,id',
|
'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:191',
|
||||||
|
@ -163,7 +163,7 @@ class Server extends Model
|
|||||||
'egg_id' => 'required|exists:eggs,id',
|
'egg_id' => 'required|exists:eggs,id',
|
||||||
'startup' => 'required|string',
|
'startup' => 'required|string',
|
||||||
'skip_scripts' => 'sometimes|boolean',
|
'skip_scripts' => 'sometimes|boolean',
|
||||||
'image' => ['required', 'string', 'max:191', 'regex:/^([a-zA-Z0-9 .#_\/\-]*)(\|*)([a-zA-Z0-9 .\/:@]*)$/'],
|
'image' => ['required', 'string', 'max:191', 'regex:/^[\w\.\/\-:@ ]*$/'],
|
||||||
'database_limit' => 'present|nullable|integer|min:0',
|
'database_limit' => 'present|nullable|integer|min:0',
|
||||||
'allocation_limit' => 'sometimes|nullable|integer|min:0',
|
'allocation_limit' => 'sometimes|nullable|integer|min:0',
|
||||||
'backup_limit' => 'present|nullable|integer|min:0',
|
'backup_limit' => 'present|nullable|integer|min:0',
|
||||||
|
@ -88,7 +88,7 @@ $('#pEggId').on('change', function (event) {
|
|||||||
for (let i = 0; i < keys.length; i++) {
|
for (let i = 0; i < keys.length; i++) {
|
||||||
let opt = document.createElement('option');
|
let opt = document.createElement('option');
|
||||||
opt.value = images[keys[i]];
|
opt.value = images[keys[i]];
|
||||||
opt.innerHTML = keys[i] + " (" + images[keys[i]] + ")";
|
opt.innerText = keys[i] + " (" + images[keys[i]] + ")";
|
||||||
$('#pDefaultContainer').append(opt);
|
$('#pDefaultContainer').append(opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@
|
|||||||
for (let i = 0; i < keys.length; i++) {
|
for (let i = 0; i < keys.length; i++) {
|
||||||
let opt = document.createElement('option');
|
let opt = document.createElement('option');
|
||||||
opt.value = images[keys[i]];
|
opt.value = images[keys[i]];
|
||||||
opt.innerHTML = keys[i] + " (" + images[keys[i]] + ")";
|
opt.innerText = keys[i] + " (" + images[keys[i]] + ")";
|
||||||
if (objectChain.id === parseInt(Pterodactyl.server.egg_id) && Pterodactyl.server.image == opt.value) {
|
if (objectChain.id === parseInt(Pterodactyl.server.egg_id) && Pterodactyl.server.image == opt.value) {
|
||||||
opt.selected = true
|
opt.selected = true
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user