Fix some missing exceptions and validation handling for users
This commit is contained in:
		
							parent
							
								
									e2d5145e3d
								
							
						
					
					
						commit
						69c2e89fe0
					
				| @ -9,8 +9,11 @@ use Dingo\Api\Exception\StoreResourceFailedException; | |||||||
| use Pterodactyl\Models; | use Pterodactyl\Models; | ||||||
| use Pterodactyl\Transformers\UserTransformer; | use Pterodactyl\Transformers\UserTransformer; | ||||||
| use Pterodactyl\Repositories\UserRepository; | use Pterodactyl\Repositories\UserRepository; | ||||||
|  | 
 | ||||||
| use Pterodactyl\Exceptions\DisplayValidationException; | use Pterodactyl\Exceptions\DisplayValidationException; | ||||||
| use Pterodactyl\Exceptions\DisplayException; | use Pterodactyl\Exceptions\DisplayException; | ||||||
|  | use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; | ||||||
|  | use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * @Resource("Users") |  * @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' |             '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)) { |         if(array_key_exists('password', $data)) { | ||||||
|             $user['password'] = Hash::make($data['password']); |             $user['password'] = Hash::make($data['password']); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         return Models\User::find($id)->update($data); |         return Models\User::findOrFail($id)->update($data); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dane Everitt
						Dane Everitt