508ff8cfb3
Everything is back to the point that it was before this massive code overhaul began. FInal steps before merging this into develop will be some unit tests.
92 lines
3.1 KiB
PHP
92 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace Pterodactyl\Http\Controllers\Server\Settings;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Prologue\Alerts\AlertsMessageBag;
|
|
use Pterodactyl\Http\Controllers\Controller;
|
|
use Pterodactyl\Traits\Controllers\JavascriptInjection;
|
|
use Pterodactyl\Services\Servers\StartupCommandViewService;
|
|
use Pterodactyl\Services\Servers\StartupModificationService;
|
|
use Pterodactyl\Http\Requests\Server\UpdateStartupParametersFormRequest;
|
|
|
|
class StartupController extends Controller
|
|
{
|
|
use JavascriptInjection;
|
|
|
|
/**
|
|
* @var \Prologue\Alerts\AlertsMessageBag
|
|
*/
|
|
private $alert;
|
|
|
|
/**
|
|
* @var \Pterodactyl\Services\Servers\StartupCommandViewService
|
|
*/
|
|
private $commandViewService;
|
|
|
|
/**
|
|
* @var \Pterodactyl\Services\Servers\StartupModificationService
|
|
*/
|
|
private $modificationService;
|
|
|
|
/**
|
|
* StartupController constructor.
|
|
*
|
|
* @param \Prologue\Alerts\AlertsMessageBag $alert
|
|
* @param \Pterodactyl\Services\Servers\StartupCommandViewService $commandViewService
|
|
* @param \Pterodactyl\Services\Servers\StartupModificationService $modificationService
|
|
*/
|
|
public function __construct(
|
|
AlertsMessageBag $alert,
|
|
StartupCommandViewService $commandViewService,
|
|
StartupModificationService $modificationService
|
|
) {
|
|
$this->alert = $alert;
|
|
$this->commandViewService = $commandViewService;
|
|
$this->modificationService = $modificationService;
|
|
}
|
|
|
|
/**
|
|
* Render the server startup page.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return \Illuminate\View\View
|
|
*
|
|
* @throws \Illuminate\Auth\Access\AuthorizationException
|
|
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
|
*/
|
|
public function index(Request $request)
|
|
{
|
|
$server = $request->attributes->get('server');
|
|
$this->authorize('view-startup', $server);
|
|
$this->injectJavascript();
|
|
|
|
$data = $this->commandViewService->handle($server->id);
|
|
|
|
return view('server.settings.startup', [
|
|
'variables' => $data->get('variables'),
|
|
'server_values' => $data->get('server_values'),
|
|
'startup' => $data->get('startup'),
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Handle request to update the startup variables for a server. Authorization
|
|
* is handled in the form request.
|
|
*
|
|
* @param \Pterodactyl\Http\Requests\Server\UpdateStartupParametersFormRequest $request
|
|
* @return \Illuminate\Http\RedirectResponse
|
|
*
|
|
* @throws \Pterodactyl\Exceptions\DisplayException
|
|
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
|
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
|
|
*/
|
|
public function update(UpdateStartupParametersFormRequest $request): RedirectResponse
|
|
{
|
|
$this->modificationService->handle($request->attributes->get('server'), $request->normalize());
|
|
$this->alert->success(trans('server.config.startup.edited'))->flash();
|
|
|
|
return redirect()->route('server.settings.startup', ['server' => $request->attributes->get('server')->uuidShort]);
|
|
}
|
|
}
|