66use Pterodactyl \Models \Server ;
77use Pterodactyl \Models \Subuser ;
88use Pterodactyl \Models \Allocation ;
9+ use Pterodactyl \Models \Permission ;
910use Illuminate \Container \Container ;
1011use Pterodactyl \Models \EggVariable ;
1112use Pterodactyl \Services \Servers \StartupCommandService ;
12- use Pterodactyl \Transformers \Api \Client \EggVariableTransformer ;
1313
1414class ServerTransformer extends BaseClientTransformer
1515{
@@ -76,11 +76,16 @@ public function transform(Server $server): array
7676 * Returns the allocations associated with this server.
7777 *
7878 * @param \Pterodactyl\Models\Server $server
79- * @return \League\Fractal\Resource\Collection
79+ * @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
80+ *
8081 * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
8182 */
8283 public function includeAllocations (Server $ server )
8384 {
85+ if (! $ this ->getUser ()->can (Permission::ACTION_ALLOCATION_READ , $ server )) {
86+ return $ this ->null ();
87+ }
88+
8489 return $ this ->collection (
8590 $ server ->allocations ,
8691 $ this ->makeTransformer (AllocationTransformer::class),
@@ -90,11 +95,16 @@ public function includeAllocations(Server $server)
9095
9196 /**
9297 * @param \Pterodactyl\Models\Server $server
93- * @return \League\Fractal\Resource\Collection
98+ * @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
99+ *
94100 * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
95101 */
96102 public function includeVariables (Server $ server )
97103 {
104+ if (! $ this ->getUser ()->can (Permission::ACTION_STARTUP_READ , $ server )) {
105+ return $ this ->null ();
106+ }
107+
98108 return $ this ->collection (
99109 $ server ->variables ->where ('user_viewable ' , true ),
100110 $ this ->makeTransformer (EggVariableTransformer::class),
@@ -118,11 +128,16 @@ public function includeEgg(Server $server)
118128 * Returns the subusers associated with this server.
119129 *
120130 * @param \Pterodactyl\Models\Server $server
121- * @return \League\Fractal\Resource\Collection
131+ * @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
132+ *
122133 * @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
123134 */
124135 public function includeSubusers (Server $ server )
125136 {
137+ if (! $ this ->getUser ()->can (Permission::ACTION_USER_READ , $ server )) {
138+ return $ this ->null ();
139+ }
140+
126141 return $ this ->collection ($ server ->subusers , $ this ->makeTransformer (SubuserTransformer::class), Subuser::RESOURCE_NAME );
127142 }
128143}
0 commit comments