Implement initial server and location API routes.

Also fixes a few exception handler issues causing incorrect HTTP status
codes on authorization errors.
This commit is contained in:
Dane Everitt 2017-04-09 13:15:15 -04:00
parent 463f465dea
commit c492446513
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
12 changed files with 639 additions and 45 deletions

View file

@ -39,6 +39,8 @@ class CoreController extends Controller
*/
public function index(Request $request)
{
$this->authorize('user-server-list', $request->apiKey());
$servers = $request->user()->access('service', 'node', 'allocation', 'option')->get();
return Fractal::collection($servers)

View file

@ -43,6 +43,8 @@ class ServerController extends Controller
*/
public function index(Request $request, $uuid)
{
$this->authorize('user-server-view', $request->apiKey());
$server = Server::byUuid($uuid);
$fractal = Fractal::create()->item($server);
@ -64,6 +66,8 @@ class ServerController extends Controller
*/
public function power(Request $request, $uuid)
{
$this->authorize('user-server-power', $request->apiKey());
$server = Server::byUuid($uuid);
$request->user()->can('power-' . $request->input('action'), $server);
@ -82,6 +86,8 @@ class ServerController extends Controller
*/
public function command(Request $request, $uuid)
{
$this->authorize('user-server-command', $request->apiKey());
$server = Server::byUuid($uuid);
$request->user()->can('send-command', $server);