Code cleanup and fixes filemanager

This commit is contained in:
Dane Everitt 2016-01-01 18:08:15 -05:00
parent a391a2d854
commit 46117afc77
9 changed files with 246 additions and 23 deletions

View file

@ -1,6 +1,6 @@
<?php
namespace Pterodactyl\Http\Controllers\Scales;
namespace Pterodactyl\Http\Controllers\Daemon;
use \Exception;
use Log;
@ -9,7 +9,7 @@ use Pterodactyl\Models\Server;
use Pterodactyl\Models\Node;
use Pterodactyl\Exceptions\DisplayException;
use Pterodactyl\Http\Helpers;
use Pterodactyl\Repositories\HelperRepository;
use Pterodactyl\Http\Controllers\Controller;
use GuzzleHttp\Client;
@ -76,7 +76,7 @@ class FileController extends Controller
}
$file = (object) pathinfo($file);
if (!in_array($file->extension, Helpers::editableFiles())) {
if (!in_array($file->extension, HelperRepository::editableFiles())) {
throw new DisplayException('You do not have permission to edit this type of file.');
}
@ -111,7 +111,7 @@ class FileController extends Controller
$file = (object) pathinfo($file);
if(!in_array($file->extension, Helpers::editableFiles())) {
if(!in_array($file->extension, HelperRepository::editableFiles())) {
throw new DisplayException('You do not have permission to edit this type of file.');
}
@ -175,7 +175,7 @@ class FileController extends Controller
'entry' => $value->name,
'directory' => trim($directory, '/'),
'extension' => pathinfo($value->name, PATHINFO_EXTENSION),
'size' => Helpers::bytesToHuman($value->size),
'size' => HelperRepository::bytesToHuman($value->size),
'date' => strtotime($value->modified)
]]);

View file

@ -6,10 +6,9 @@ use Log;
use Debugbar;
use Pterodactyl\Models\Server;
use Pterodactyl\Models\Node;
use Pterodactyl\Http\Helpers;
use Pterodactyl\Exceptions\DisplayException;
use Pterodactyl\Http\Controllers\Scales\FileController;
use Pterodactyl\Repositories;
use Pterodactyl\Http\Controllers\Controller;
use Illuminate\Http\Request;
@ -119,7 +118,7 @@ class AjaxController extends Controller
$prevDir['link_show'] = trim($prevDir['link'], '/');
}
$controller = new FileController($uuid);
$controller = new Repositories\Daemon\FileRepository($uuid);
try {
$directoryContents = $controller->returnDirectoryListing($this->directory);
@ -140,7 +139,7 @@ class AjaxController extends Controller
'server' => $server,
'files' => $directoryContents->files,
'folders' => $directoryContents->folders,
'extensions' => Helpers::editableFiles(),
'extensions' => Repositories\HelperRepository::editableFiles(),
'directory' => $prevDir
]);
@ -159,7 +158,7 @@ class AjaxController extends Controller
$server = Server::getByUUID($uuid);
$this->authorize('save-files', $server);
$controller = new FileController($uuid);
$controller = new Repositories\Daemon\FileRepository($uuid);
try {
$controller->saveFileContents($request->input('file'), $request->input('contents'));

View file

@ -11,7 +11,7 @@ use Uuid;
use Alert;
use Pterodactyl\Exceptions\DisplayException;
use Pterodactyl\Http\Controllers\Scales\FileController;
use Pterodactyl\Repositories;
use Pterodactyl\Http\Controllers\Controller;
use Illuminate\Http\Request;
@ -102,7 +102,7 @@ class ServerController extends Controller
$this->authorize('edit-files', $server);
$fileInfo = (object) pathinfo($file);
$controller = new FileController($uuid);
$controller = new Repositories\Daemon\FileRepository($uuid);
try {
$fileContent = $controller->returnFileContents($file);
@ -124,7 +124,7 @@ class ServerController extends Controller
'server' => $server,
'node' => Node::find($server->node),
'file' => $file,
'contents' => $fileContent->contents,
'contents' => $fileContent->content,
'directory' => (in_array($fileInfo->dirname, ['.', './', '/'])) ? '/' : trim($fileInfo->dirname, '/') . '/',
'extension' => $fileInfo->extension
]);
@ -155,7 +155,7 @@ class ServerController extends Controller
$download->save();
return redirect('https://' . $node->fqdn . ':' . $node->daemonListen . '/server/download/' . $download->token);
return redirect( $node->scheme . '://' . $node->fqdn . ':' . $node->daemonListen . '/server/download/' . $download->token);
}

View file

@ -1,58 +0,0 @@
<?php
namespace Pterodactyl\Http;
class Helpers {
/**
* Listing of editable files in the control panel.
* @var array
*/
protected static $editable = [
'txt',
'yml',
'yaml',
'log',
'conf',
'config',
'html',
'json',
'properties',
'props',
'cfg',
'lang',
'ini',
'cmd',
'sh',
'lua',
'0' // Supports BungeeCord Files
];
public function __construct()
{
//
}
/**
* Converts from bytes to the largest possible size that is still readable.
*
* @param int $bytes
* @param int $decimals
* @return string
*/
public static function bytesToHuman($bytes, $decimals = 2)
{
$sz = explode(',', 'B,KB,MB,GB');
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)).' '.$sz[$factor];
}
public static function editableFiles()
{
return self::$editable;
}
}