Add basic subuser listing for servers

This commit is contained in:
Dane Everitt 2019-11-03 12:20:11 -08:00
parent de464d35a2
commit 543884876f
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
14 changed files with 310 additions and 4 deletions

View file

@ -0,0 +1,45 @@
<?php
namespace Pterodactyl\Http\Controllers\Api\Client\Servers;
use Pterodactyl\Models\Server;
use Pterodactyl\Repositories\Eloquent\SubuserRepository;
use Pterodactyl\Transformers\Api\Client\SubuserTransformer;
use Pterodactyl\Http\Controllers\Api\Client\ClientApiController;
use Pterodactyl\Http\Requests\Api\Client\Servers\Subusers\GetSubuserRequest;
class SubuserController extends ClientApiController
{
/**
* @var \Pterodactyl\Repositories\Eloquent\SubuserRepository
*/
private $repository;
/**
* SubuserController constructor.
*
* @param \Pterodactyl\Repositories\Eloquent\SubuserRepository $repository
*/
public function __construct(SubuserRepository $repository)
{
parent::__construct();
$this->repository = $repository;
}
/**
* Return the users associated with this server instance.
*
* @param \Pterodactyl\Http\Requests\Api\Client\Servers\Subusers\GetSubuserRequest $request
* @param \Pterodactyl\Models\Server $server
* @return array
*/
public function index(GetSubuserRequest $request, Server $server)
{
$users = $this->repository->getSubusersForServer($server->id);
return $this->fractal->collection($users)
->transformWith($this->getTransformer(SubuserTransformer::class))
->toArray();
}
}

View file

@ -0,0 +1,18 @@
<?php
namespace Pterodactyl\Http\Requests\Api\Client\Servers\Subusers;
use Pterodactyl\Http\Requests\Api\Client\ClientApiRequest;
class GetSubuserRequest extends ClientApiRequest
{
/**
* Confirm that a user is able to view subusers for the specified server.
*
* @return bool
*/
public function authorize(): bool
{
return $this->user()->can('view-subusers', $this->route()->parameter('server'));
}
}