Code cleanup and fixes filemanager
This commit is contained in:
parent
a391a2d854
commit
46117afc77
9 changed files with 246 additions and 23 deletions
|
@ -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)
|
||||
]]);
|
||||
|
||||
|
|
|
@ -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'));
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue