Path: blob/1.0-develop/app/Transformers/Api/Application/SubuserTransformer.php
10280 views
<?php12namespace Pterodactyl\Transformers\Api\Application;34use Pterodactyl\Models\Subuser;5use League\Fractal\Resource\Item;6use League\Fractal\Resource\NullResource;7use Pterodactyl\Services\Acl\Api\AdminAcl;89class SubuserTransformer extends BaseTransformer10{11/**12* List of resources that can be included.13*/14protected array $availableIncludes = ['user', 'server'];1516/**17* Return the resource name for the JSONAPI output.18*/19public function getResourceName(): string20{21return Subuser::RESOURCE_NAME;22}2324/**25* Return a transformed Subuser model that can be consumed by external services.26*/27public function transform(Subuser $subuser): array28{29return [30'id' => $subuser->id,31'user_id' => $subuser->user_id,32'server_id' => $subuser->server_id,33'permissions' => $subuser->permissions,34'created_at' => $this->formatTimestamp($subuser->created_at),35'updated_at' => $this->formatTimestamp($subuser->updated_at),36];37}3839/**40* Return a generic item of user for this subuser.41*42* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException43*/44public function includeUser(Subuser $subuser): Item|NullResource45{46if (!$this->authorize(AdminAcl::RESOURCE_USERS)) {47return $this->null();48}4950$subuser->loadMissing('user');5152return $this->item($subuser->getRelation('user'), $this->makeTransformer(UserTransformer::class), 'user');53}5455/**56* Return a generic item of server for this subuser.57*58* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException59*/60public function includeServer(Subuser $subuser): Item|NullResource61{62if (!$this->authorize(AdminAcl::RESOURCE_SERVERS)) {63return $this->null();64}6566$subuser->loadMissing('server');6768return $this->item($subuser->getRelation('server'), $this->makeTransformer(ServerTransformer::class), 'server');69}70}717273