Complete implementation of new Server model.
This commit is contained in:
parent
644ee85f59
commit
3114b7e52a
10 changed files with 170 additions and 202 deletions
|
@ -59,9 +59,7 @@ class ServerController extends Controller
|
|||
{
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only(['uuid', 'daemonSecret', 'username']),
|
||||
'node' => collect($server->node_id)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
$server->js([
|
||||
'meta' => [
|
||||
'saveFile' => route('server.files.save', $server->uuidShort),
|
||||
'csrfToken' => csrf_token(),
|
||||
|
@ -70,7 +68,7 @@ class ServerController extends Controller
|
|||
|
||||
return view('server.index', [
|
||||
'server' => $server,
|
||||
'node' => $server->node_id,
|
||||
'node' => $server->node,
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -82,14 +80,10 @@ class ServerController extends Controller
|
|||
*/
|
||||
public function getFiles(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('list-files', $server);
|
||||
|
||||
$node = Models\Node::find($server->node_id);
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only('uuid', 'uuidShort', 'daemonSecret'),
|
||||
'node' => collect($node)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
$server->js([
|
||||
'meta' => [
|
||||
'directoryList' => route('server.files.directory-list', $server->uuidShort),
|
||||
'csrftoken' => csrf_token(),
|
||||
|
@ -107,7 +101,7 @@ class ServerController extends Controller
|
|||
|
||||
return view('server.files.index', [
|
||||
'server' => $server,
|
||||
'node' => $node,
|
||||
'node' => $server->node,
|
||||
]);
|
||||
}
|
||||
|
||||
|
@ -119,18 +113,14 @@ class ServerController extends Controller
|
|||
*/
|
||||
public function getAddFile(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('add-files', $server);
|
||||
$node = Models\Node::find($server->node_id);
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only(['uuid', 'uuidShort', 'daemonSecret', 'username']),
|
||||
'node' => collect($node)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
]);
|
||||
$server->js();
|
||||
|
||||
return view('server.files.add', [
|
||||
'server' => $server,
|
||||
'node' => $node,
|
||||
'node' => $server->node,
|
||||
'directory' => (in_array($request->get('dir'), [null, '/', ''])) ? '' : trim($request->get('dir'), '/') . '/',
|
||||
]);
|
||||
}
|
||||
|
@ -145,9 +135,8 @@ class ServerController extends Controller
|
|||
*/
|
||||
public function getEditFile(Request $request, $uuid, $file)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('edit-files', $server);
|
||||
$node = Models\Node::find($server->node_id);
|
||||
|
||||
$fileInfo = (object) pathinfo($file);
|
||||
$controller = new FileRepository($uuid);
|
||||
|
@ -165,15 +154,13 @@ class ServerController extends Controller
|
|||
return redirect()->route('server.files.index', $uuid);
|
||||
}
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only(['uuid', 'uuidShort', 'daemonSecret', 'username']),
|
||||
'node' => collect($node)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
$server->js([
|
||||
'stat' => $fileContent['stat'],
|
||||
]);
|
||||
|
||||
return view('server.files.edit', [
|
||||
'server' => $server,
|
||||
'node' => $node,
|
||||
'node' => $server->node,
|
||||
'file' => $file,
|
||||
'stat' => $fileContent['stat'],
|
||||
'contents' => $fileContent['file']->content,
|
||||
|
@ -191,9 +178,7 @@ class ServerController extends Controller
|
|||
*/
|
||||
public function getDownloadFile(Request $request, $uuid, $file)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$node = Models\Node::find($server->node_id);
|
||||
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('download-files', $server);
|
||||
|
||||
$download = new Models\Download;
|
||||
|
@ -204,38 +189,31 @@ class ServerController extends Controller
|
|||
|
||||
$download->save();
|
||||
|
||||
return redirect($node->scheme . '://' . $node->fqdn . ':' . $node->daemonListen . '/server/file/download/' . $download->token);
|
||||
return redirect($server->node->scheme . '://' . $server->node->fqdn . ':' . $server->node->daemonListen . '/server/file/download/' . $download->token);
|
||||
}
|
||||
|
||||
public function getAllocation(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('view-allocation', $server);
|
||||
$node = Models\Node::find($server->node_id);
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only(['uuid', 'uuidShort', 'daemonSecret', 'username']),
|
||||
'node' => collect($node)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
]);
|
||||
$server->js();
|
||||
|
||||
return view('server.settings.allocation', [
|
||||
'server' => $server,
|
||||
'allocations' => Models\Allocation::where('assigned_to', $server->id)->orderBy('ip', 'asc')->orderBy('port', 'asc')->get(),
|
||||
'node' => $node,
|
||||
'server' => $server->load(['allocations' => function ($query) {
|
||||
$query->orderBy('ip', 'asc');
|
||||
$query->orderBy('port', 'asc');
|
||||
}]),
|
||||
'node' => $server->node,
|
||||
]);
|
||||
}
|
||||
|
||||
public function getStartup(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$server->load(['allocations' => function ($query) use ($server) {
|
||||
$query->where('id', $server->allocation_id);
|
||||
}]);
|
||||
$this->authorize('view-startup', $server);
|
||||
$node = Models\Node::find($server->node_id);
|
||||
$allocation = Models\Allocation::findOrFail($server->allocation_id);
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only(['uuid', 'uuidShort', 'daemonSecret', 'username']),
|
||||
'node' => collect($node)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
]);
|
||||
|
||||
$variables = Models\ServiceVariables::select(
|
||||
'service_variables.*',
|
||||
|
@ -252,6 +230,7 @@ class ServerController extends Controller
|
|||
->where('services.id', $server->service_id)
|
||||
->first();
|
||||
|
||||
$allocation = $server->allocations->pop();
|
||||
$serverVariables = [
|
||||
'{{SERVER_MEMORY}}' => $server->memory,
|
||||
'{{SERVER_IP}}' => $allocation->ip,
|
||||
|
@ -260,13 +239,15 @@ class ServerController extends Controller
|
|||
|
||||
$processed = str_replace(array_keys($serverVariables), array_values($serverVariables), $server->startup);
|
||||
foreach ($variables as &$variable) {
|
||||
$replace = ($variable->user_viewable === 1) ? $variable->a_serverValue : '**';
|
||||
$replace = ($variable->user_viewable === 1) ? $variable->a_serverValue : '[hidden]';
|
||||
$processed = str_replace('{{' . $variable->env_variable . '}}', $replace, $processed);
|
||||
}
|
||||
|
||||
$server->js();
|
||||
|
||||
return view('server.settings.startup', [
|
||||
'server' => $server,
|
||||
'node' => Models\Node::find($server->node_id),
|
||||
'node' => $server->node,
|
||||
'variables' => $variables->where('user_viewable', 1),
|
||||
'service' => $service,
|
||||
'processedStartup' => $processed,
|
||||
|
@ -275,18 +256,13 @@ class ServerController extends Controller
|
|||
|
||||
public function getDatabases(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('view-databases', $server);
|
||||
$node = Models\Node::find($server->node_id);
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only(['uuid', 'uuidShort', 'daemonSecret', 'username']),
|
||||
'node' => collect($node)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
]);
|
||||
$server->js();
|
||||
|
||||
return view('server.settings.databases', [
|
||||
'server' => $server,
|
||||
'node' => $node,
|
||||
'node' => $server->node,
|
||||
'databases' => Models\Database::select('databases.*', 'database_servers.host as a_host', 'database_servers.port as a_port')
|
||||
->where('server_id', $server->id)
|
||||
->join('database_servers', 'database_servers.id', '=', 'databases.db_server')
|
||||
|
@ -296,24 +272,19 @@ class ServerController extends Controller
|
|||
|
||||
public function getSFTP(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('view-sftp', $server);
|
||||
$node = Models\Node::find($server->node_id);
|
||||
|
||||
Javascript::put([
|
||||
'server' => collect($server->makeVisible('daemonSecret'))->only(['uuid', 'daemonSecret', 'username']),
|
||||
'node' => collect($node)->only('fqdn', 'scheme', 'daemonListen'),
|
||||
]);
|
||||
$server->js();
|
||||
|
||||
return view('server.settings.sftp', [
|
||||
'server' => $server,
|
||||
'node' => $node,
|
||||
'node' => $server->node,
|
||||
]);
|
||||
}
|
||||
|
||||
public function postSettingsSFTP(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('reset-sftp', $server);
|
||||
|
||||
try {
|
||||
|
@ -334,7 +305,7 @@ class ServerController extends Controller
|
|||
|
||||
public function postSettingsStartup(Request $request, $uuid)
|
||||
{
|
||||
$server = Models\Server::getByUUID($uuid);
|
||||
$server = Models\Server::byUuid($uuid);
|
||||
$this->authorize('edit-startup', $server);
|
||||
|
||||
try {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue