Clean up setting allocation front-end

This commit is contained in:
Dane Everitt 2016-01-08 22:36:57 -05:00
parent b41e7ecf09
commit a1c6aa6358
3 changed files with 43 additions and 4 deletions

View File

@ -183,6 +183,12 @@ class AjaxController extends Controller
$server = Server::getByUUID($uuid);
$this->authorize('set-connection', $server);
if ($request->input('connection') === $server->ip . ':' . $server->port) {
return response()->json([
'error' => 'You are already using this as your default connection.'
], 409);
}
try {
$repo = new Repositories\ServerRepository;

View File

@ -221,6 +221,13 @@ class ServerPolicy
return $user->permissions()->server($server)->permission('view-manage')->exists();
}
/**
* Check if user has permission to view allocations for a server.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function viewAllocation(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
@ -230,4 +237,20 @@ class ServerPolicy
return $user->permissions()->server($server)->permission('view-allocation')->exists();
}
/**
* Check if user has permission to set the default connection for a server.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function setAllocation(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('set-allocation')->exists();
}
}

View File

@ -384,7 +384,7 @@ $(window).load(function () {
}
}
@can('view-allocation', $server)
@can('set-allocation', $server)
// Send Request
$('[data-action="set-connection"]').click(function (event) {
event.preventDefault();
@ -403,16 +403,26 @@ $(window).load(function () {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
}).done(function (data) {
swal({
type: 'success',
title: '',
text: data
});
$('#conn_options').find('li.active').removeClass('active');
element.parent().addClass('active');
alert(data);
}).fail(function (jqXHR) {
console.error(jqXHR);
var respError;
if (typeof jqXHR.responseJSON.error === 'undefined' || jqXHR.responseJSON.error === '') {
return alert('An error occured while attempting to perform this action.');
respError = 'An error occured while attempting to perform this action.';
} else {
return alert(jqXHR.responseJSON.error);
respError = jqXHR.responseJSON.error;
}
swal({
type: 'error',
title: 'Whoops!',
text: respError
});
});
});
@endcan