Fix some missing exceptions and validation handling for users
This commit is contained in:
parent
e2d5145e3d
commit
69c2e89fe0
2 changed files with 21 additions and 2 deletions
|
@ -9,8 +9,11 @@ use Dingo\Api\Exception\StoreResourceFailedException;
|
|||
use Pterodactyl\Models;
|
||||
use Pterodactyl\Transformers\UserTransformer;
|
||||
use Pterodactyl\Repositories\UserRepository;
|
||||
|
||||
use Pterodactyl\Exceptions\DisplayValidationException;
|
||||
use Pterodactyl\Exceptions\DisplayException;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
|
||||
|
||||
/**
|
||||
* @Resource("Users")
|
||||
|
@ -61,7 +64,17 @@ class UserController extends BaseController
|
|||
}
|
||||
}
|
||||
|
||||
return $query->first();
|
||||
try {
|
||||
if (!$query->first()) {
|
||||
throw new NotFoundHttpException('No user by that ID was found.');
|
||||
}
|
||||
return $query->first();
|
||||
} catch (NotFoundHttpException $ex) {
|
||||
throw $ex;
|
||||
} catch (\Exception $ex) {
|
||||
throw new BadRequestHttpException('There was an issue with the fields passed in the request.');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -80,11 +80,17 @@ class UserRepository
|
|||
'totp_secret' => 'size:16'
|
||||
]);
|
||||
|
||||
// Run validator, throw catchable and displayable exception if it fails.
|
||||
// Exception includes a JSON result of failed validation rules.
|
||||
if ($validator->fails()) {
|
||||
throw new DisplayValidationException($validator->errors());
|
||||
}
|
||||
|
||||
if(array_key_exists('password', $data)) {
|
||||
$user['password'] = Hash::make($data['password']);
|
||||
}
|
||||
|
||||
return Models\User::find($id)->update($data);
|
||||
return Models\User::findOrFail($id)->update($data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue