Skip to content

Commit a66623d

Browse files
committed
Fix user search via the API; ref pterodactyl#2100
1 parent 703f552 commit a66623d

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

app/Http/Controllers/Api/Application/Users/UserController.php

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Pterodactyl\Models\User;
66
use Illuminate\Http\Response;
77
use Illuminate\Http\JsonResponse;
8+
use Spatie\QueryBuilder\QueryBuilder;
89
use Pterodactyl\Services\Users\UserUpdateService;
910
use Pterodactyl\Services\Users\UserCreationService;
1011
use Pterodactyl\Services\Users\UserDeletionService;
@@ -70,7 +71,10 @@ public function __construct(
7071
*/
7172
public function index(GetUsersRequest $request): array
7273
{
73-
$users = $this->repository->setSearchTerm($request->input('search'))->paginated(50);
74+
$users = QueryBuilder::for(User::query())
75+
->allowedFilters(['email', 'uuid', 'username', 'external_id'])
76+
->allowedSorts(['id', 'uuid'])
77+
->paginate(100);
7478

7579
return $this->fractal->collection($users)
7680
->transformWith($this->getTransformer(UserTransformer::class))
@@ -82,11 +86,12 @@ public function index(GetUsersRequest $request): array
8286
* were defined in the request.
8387
*
8488
* @param \Pterodactyl\Http\Requests\Api\Application\Users\GetUsersRequest $request
89+
* @param \Pterodactyl\Models\User $user
8590
* @return array
8691
*/
87-
public function view(GetUsersRequest $request): array
92+
public function view(GetUsersRequest $request, User $user): array
8893
{
89-
return $this->fractal->item($request->getModel(User::class))
94+
return $this->fractal->item($user)
9095
->transformWith($this->getTransformer(UserTransformer::class))
9196
->toArray();
9297
}
@@ -146,14 +151,15 @@ public function store(StoreUserRequest $request): JsonResponse
146151
* on successful deletion.
147152
*
148153
* @param \Pterodactyl\Http\Requests\Api\Application\Users\DeleteUserRequest $request
149-
* @return \Illuminate\Http\Response
154+
* @param \Pterodactyl\Models\User $user
155+
* @return \Illuminate\Http\JsonResponse
150156
*
151157
* @throws \Pterodactyl\Exceptions\DisplayException
152158
*/
153-
public function delete(DeleteUserRequest $request): Response
159+
public function delete(DeleteUserRequest $request, User $user): JsonResponse
154160
{
155-
$this->deletionService->handle($request->getModel(User::class));
161+
$this->deletionService->handle($user);
156162

157-
return response('', 204);
163+
return new JsonResponse([], JsonResponse::HTTP_NO_CONTENT);
158164
}
159165
}

0 commit comments

Comments
 (0)