Add support for filesystem caching, closes #993

This commit is contained in:
Dane Everitt 2018-03-01 18:46:59 -06:00
parent ab2973c4d1
commit 838b9a9093
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
4 changed files with 5 additions and 11 deletions

View file

@ -22,6 +22,7 @@ class AppSettingsCommand extends Command
const ALLOWED_CACHE_DRIVERS = [ const ALLOWED_CACHE_DRIVERS = [
'redis' => 'Redis (recommended)', 'redis' => 'Redis (recommended)',
'memcached' => 'Memcached', 'memcached' => 'Memcached',
'file' => 'Filesystem',
]; ];
const ALLOWED_SESSION_DRIVERS = [ const ALLOWED_SESSION_DRIVERS = [

View file

@ -366,7 +366,7 @@ class NodesController extends Controller
public function setToken(Node $node) public function setToken(Node $node)
{ {
$token = bin2hex(random_bytes(16)); $token = bin2hex(random_bytes(16));
$this->cache->tags(['Node:Configuration'])->put($token, $node->id, 5); $this->cache->put('Node:Configuration:' . $token, $node->id, 5);
return response()->json(['token' => $token]); return response()->json(['token' => $token]);
} }

View file

@ -1,11 +1,4 @@
<?php <?php
/**
* Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
*
* This software is licensed under the terms of the MIT license.
* https://opensource.org/licenses/MIT
*/
namespace Pterodactyl\Http\Controllers\Daemon; namespace Pterodactyl\Http\Controllers\Daemon;
@ -25,7 +18,7 @@ class ActionController extends Controller
*/ */
public function authenticateDownload(Request $request) public function authenticateDownload(Request $request)
{ {
$download = Cache::tags(['Server:Downloads'])->pull($request->input('token')); $download = Cache::pull('Server:Downloads:' . $request->input('token'));
if (is_null($download)) { if (is_null($download)) {
return response()->json([ return response()->json([
@ -78,7 +71,7 @@ class ActionController extends Controller
*/ */
public function configuration(Request $request, $token) public function configuration(Request $request, $token)
{ {
$nodeId = Cache::tags(['Node:Configuration'])->pull($token); $nodeId = Cache::pull('Node:Configuration:' . $token);
if (is_null($nodeId)) { if (is_null($nodeId)) {
return response()->json(['error' => 'token_invalid'], 403); return response()->json(['error' => 'token_invalid'], 403);
} }

View file

@ -48,7 +48,7 @@ class DownloadController extends Controller
$token = str_random(40); $token = str_random(40);
$node = $server->getRelation('node'); $node = $server->getRelation('node');
$this->cache->tags(['Server:Downloads'])->put($token, ['server' => $server->uuid, 'path' => $file], 5); $this->cache->put('Server:Downloads:' . $token, ['server' => $server->uuid, 'path' => $file], 5);
return redirect(sprintf('%s://%s:%s/v1/server/file/download/%s', $node->scheme, $node->fqdn, $node->daemonListen, $token)); return redirect(sprintf('%s://%s:%s/v1/server/file/download/%s', $node->scheme, $node->fqdn, $node->daemonListen, $token));
} }