Un-butcher task system.

This commit is contained in:
Dane Everitt 2017-04-15 13:52:43 -04:00
parent 0fe9a4566e
commit 7f1a97184b
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
12 changed files with 154 additions and 77 deletions

View file

@ -24,7 +24,8 @@
namespace Pterodactyl\Repositories\Daemon;
use Pterodactyl\Models;
use Pterodactyl\Models\User;
use Pterodactyl\Models\Server;
use GuzzleHttp\Exception\ConnectException;
use Pterodactyl\Exceptions\DisplayException;
@ -37,15 +38,24 @@ class CommandRepository
*/
protected $server;
/**
* The Eloquent Model associated with the user to run the request as.
*
* @var \Pterodactyl\Models\User|null
*/
protected $user;
/**
* Constuctor for repository.
*
* @param int|\Pterodactyl\Models\Server $server
* @param \Pterodactyl\Models\Server $server
* @param \Pterodactyl\Models\User|null $user
* @return void
*/
public function __construct($server)
public function __construct(Server $server, User $user = null)
{
$this->server = ($server instanceof Models\Server) ? $server : Models\Server::findOrFail($server);
$this->server = $server;
$this->user = $user;
}
/**
@ -62,7 +72,7 @@ class CommandRepository
// We don't use the user's specific daemon secret here since we
// are assuming that a call to this function has been validated.
try {
$response = $this->server->guzzleClient()->request('PUT', '/server/command', [
$response = $this->server->guzzleClient($this->user)->request('POST', '/server/command', [
'http_errors' => false,
'json' => [
'command' => $command,

View file

@ -24,7 +24,8 @@
namespace Pterodactyl\Repositories\Daemon;
use Pterodactyl\Models;
use Pterodactyl\Models\User;
use Pterodactyl\Models\Server;
use GuzzleHttp\Exception\ConnectException;
use Pterodactyl\Exceptions\DisplayException;
@ -37,21 +38,30 @@ class PowerRepository
*/
protected $server;
/**
* The Eloquent Model associated with the user to run the request as.
*
* @var \Pterodactyl\Models\User|null
*/
protected $user;
/**
* Constuctor for repository.
*
* @param int|\Pterodactyl\Models\Server $server
* @param \Pterodactyl\Models\Server $server
* @param \Pterodactyl\Models\User|null $user
* @return void
*/
public function __construct($server)
public function __construct(Server $server, User $user = null)
{
$this->server = ($server instanceof Models\Server) ? $server : Models\Server::findOrFail($server);
$this->server = $server;
$this->user = $user;
}
/**
* Sends a power option to the daemon.
*
* @param string $action
* @param string $action
* @return string
*
* @throws \GuzzleHttp\Exception\RequestException
@ -59,10 +69,8 @@ class PowerRepository
*/
public function do($action)
{
// We don't use the user's specific daemon secret here since we
// are assuming that a call to this function has been validated.
try {
$response = $this->server->guzzleClient()->request('PUT', '/server/power', [
$response = $this->server->guzzleClient($this->user)->request('PUT', '/server/power', [
'http_errors' => false,
'json' => [
'action' => $action,