Add more front-end controllers, language file cleanup

This commit is contained in:
Dane Everitt 2017-09-03 16:32:52 -05:00
parent 4532811fcd
commit 54554465f2
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
59 changed files with 1100 additions and 336 deletions

View file

@ -26,7 +26,6 @@ namespace Pterodactyl\Http\Controllers\Server;
use Log;
use Alert;
use Cache;
use Pterodactyl\Models;
use Illuminate\Http\Request;
use Pterodactyl\Exceptions\DisplayException;
@ -35,126 +34,6 @@ use Pterodactyl\Exceptions\DisplayValidationException;
class ServerController extends Controller
{
/**
* Renders file overview page.
*
* @param \Illuminate\Http\Request $request
* @param string $uuid
* @return \Illuminate\View\View
*/
public function getFiles(Request $request, $uuid)
{
$server = Models\Server::byUuid($uuid);
$this->authorize('list-files', $server);
$server->js([
'meta' => [
'directoryList' => route('server.files.directory-list', $server->uuidShort),
'csrftoken' => csrf_token(),
],
'permissions' => [
'moveFiles' => $request->user()->can('move-files', $server),
'copyFiles' => $request->user()->can('copy-files', $server),
'compressFiles' => $request->user()->can('compress-files', $server),
'decompressFiles' => $request->user()->can('decompress-files', $server),
'createFiles' => $request->user()->can('create-files', $server),
'downloadFiles' => $request->user()->can('download-files', $server),
'deleteFiles' => $request->user()->can('delete-files', $server),
],
]);
return view('server.files.index', [
'server' => $server,
'node' => $server->node,
]);
}
/**
* Renders add file page.
*
* @param \Illuminate\Http\Request $request
* @param string $uuid
* @return \Illuminate\View\View
*/
public function getAddFile(Request $request, $uuid)
{
$server = Models\Server::byUuid($uuid);
$this->authorize('create-files', $server);
$server->js();
return view('server.files.add', [
'server' => $server,
'node' => $server->node,
'directory' => (in_array($request->get('dir'), [null, '/', ''])) ? '' : trim($request->get('dir'), '/') . '/',
]);
}
/**
* Renders edit file page for a given file.
*
* @param \Illuminate\Http\Request $request
* @param string $uuid
* @param string $file
* @return \Illuminate\View\View
*/
public function getEditFile(Request $request, $uuid, $file)
{
$server = Models\Server::byUuid($uuid);
$this->authorize('edit-files', $server);
$fileInfo = (object) pathinfo($file);
$controller = new FileRepository($uuid);
try {
$fileContent = $controller->returnFileContents($file);
} catch (DisplayException $ex) {
Alert::danger($ex->getMessage())->flash();
return redirect()->route('server.files.index', $uuid);
} catch (\Exception $ex) {
Log::error($ex);
Alert::danger('An error occured while attempting to load the requested file for editing, please try again.')->flash();
return redirect()->route('server.files.index', $uuid);
}
$server->js([
'stat' => $fileContent['stat'],
]);
return view('server.files.edit', [
'server' => $server,
'node' => $server->node,
'file' => $file,
'stat' => $fileContent['stat'],
'contents' => $fileContent['file']->content,
'directory' => (in_array($fileInfo->dirname, ['.', './', '/'])) ? '/' : trim($fileInfo->dirname, '/') . '/',
]);
}
/**
* Handles downloading a file for the user.
*
* @param \Illuminate\Http\Request $request
* @param string $uuid
* @param string $file
* @return \Illuminate\View\View
*/
public function getDownloadFile(Request $request, $uuid, $file)
{
$server = Models\Server::byUuid($uuid);
$this->authorize('download-files', $server);
$token = str_random(40);
Cache::tags(['Server:Downloads'])->put($token, [
'server' => $server->uuid,
'path' => $file,
], 5);
return redirect($server->node->scheme . '://' . $server->node->fqdn . ':' . $server->node->daemonListen . '/server/file/download/' . $token);
}
/**
* Returns the allocation overview for a server.
*