Skip to content

Commit a1c6aa6

Browse files
committed
Clean up setting allocation front-end
1 parent b41e7ec commit a1c6aa6

File tree

3 files changed

+43
-4
lines changed

3 files changed

+43
-4
lines changed

app/Http/Controllers/Server/AjaxController.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,12 @@ public function postSetConnection(Request $request, $uuid)
183183
$server = Server::getByUUID($uuid);
184184
$this->authorize('set-connection', $server);
185185

186+
if ($request->input('connection') === $server->ip . ':' . $server->port) {
187+
return response()->json([
188+
'error' => 'You are already using this as your default connection.'
189+
], 409);
190+
}
191+
186192
try {
187193

188194
$repo = new Repositories\ServerRepository;

app/Policies/ServerPolicy.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,13 @@ public function viewManage(User $user, Server $server)
221221
return $user->permissions()->server($server)->permission('view-manage')->exists();
222222
}
223223

224+
/**
225+
* Check if user has permission to view allocations for a server.
226+
*
227+
* @param Pterodactyl\Models\User $user
228+
* @param Pterodactyl\Models\Server $server
229+
* @return boolean
230+
*/
224231
public function viewAllocation(User $user, Server $server)
225232
{
226233
if ($this->isOwner($user, $server)) {
@@ -230,4 +237,20 @@ public function viewAllocation(User $user, Server $server)
230237
return $user->permissions()->server($server)->permission('view-allocation')->exists();
231238
}
232239

240+
/**
241+
* Check if user has permission to set the default connection for a server.
242+
*
243+
* @param Pterodactyl\Models\User $user
244+
* @param Pterodactyl\Models\Server $server
245+
* @return boolean
246+
*/
247+
public function setAllocation(User $user, Server $server)
248+
{
249+
if ($this->isOwner($user, $server)) {
250+
return true;
251+
}
252+
253+
return $user->permissions()->server($server)->permission('set-allocation')->exists();
254+
}
255+
233256
}

resources/views/server/index.blade.php

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ function updatePlayerListVisibility(data) {
384384
}
385385
}
386386
387-
@can('view-allocation', $server)
387+
@can('set-allocation', $server)
388388
// Send Request
389389
$('[data-action="set-connection"]').click(function (event) {
390390
event.preventDefault();
@@ -403,16 +403,26 @@ function updatePlayerListVisibility(data) {
403403
'X-CSRF-TOKEN': '{{ csrf_token() }}'
404404
}
405405
}).done(function (data) {
406+
swal({
407+
type: 'success',
408+
title: '',
409+
text: data
410+
});
406411
$('#conn_options').find('li.active').removeClass('active');
407412
element.parent().addClass('active');
408-
alert(data);
409413
}).fail(function (jqXHR) {
410414
console.error(jqXHR);
415+
var respError;
411416
if (typeof jqXHR.responseJSON.error === 'undefined' || jqXHR.responseJSON.error === '') {
412-
return alert('An error occured while attempting to perform this action.');
417+
respError = 'An error occured while attempting to perform this action.';
413418
} else {
414-
return alert(jqXHR.responseJSON.error);
419+
respError = jqXHR.responseJSON.error;
415420
}
421+
swal({
422+
type: 'error',
423+
title: 'Whoops!',
424+
text: respError
425+
});
416426
});
417427
});
418428
@endcan

0 commit comments

Comments
 (0)