Path: blob/1.0-develop/app/Services/Servers/GetUserPermissionsService.php
10276 views
<?php12namespace Pterodactyl\Services\Servers;34use Pterodactyl\Models\User;5use Pterodactyl\Models\Server;67class GetUserPermissionsService8{9/**10* Returns the server specific permissions that a user has. This checks11* if they are an admin or a subuser for the server. If no permissions are12* found, an empty array is returned.13*/14public function handle(Server $server, User $user): array15{16if ($user->root_admin || $user->id === $server->owner_id) {17$permissions = ['*'];1819if ($user->root_admin) {20$permissions[] = 'admin.websocket.errors';21$permissions[] = 'admin.websocket.install';22$permissions[] = 'admin.websocket.transfer';23}2425return $permissions;26}2728/** @var \Pterodactyl\Models\Subuser|null $subuserPermissions */29$subuserPermissions = $server->subusers()->where('user_id', $user->id)->first();3031return $subuserPermissions ? $subuserPermissions->permissions : [];32}33}343536