Fix error where exception appeared instead of error message

This commit fixes an issue with fake MC usernames being used and 
resulting in a fatal exception. Displays an error msg now.
This commit is contained in:
Miguel Nogueira 2020-06-28 04:51:32 +01:00
parent c58c46eda8
commit ed95f02e00
4 changed files with 35 additions and 3 deletions

View File

@ -20,8 +20,18 @@ class UsernameUUID
$input = $request->all();
if (isset($input['uuid']))
{
$username = $input['uuid'];
$input['uuid'] = UUID::toUUID($username);
try
{
$username = $input['uuid'];
$input['uuid'] = UUID::toUUID($username);
}
catch(\InvalidArgumentException $iae)
{
report($iae);
$request->session()->flash('error', $iae->getMessage());
return redirect(route('register'));
}
$request->replace($input);
}

View File

@ -23,7 +23,13 @@ class UUID
$username
])->body(), true);
return $response[0]['id'];
if (isset($response[0]))
{
return $response[0]['id'];
}
throw new \InvalidArgumentException("You must supply a valid, premium Minecraft account to sign up.");
}
// Note: Caching could simply be assigning the username to it's UUID, however, to make this work, we'd need to loop over all cache items, which would be slighly ineffective

View File

@ -1,9 +1,22 @@
@extends('layouts.app')
@section('content')
<x-global-errors></x-global-errors>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
@if (session()->has('error'))
<div class="alert alert-danger">
<i class="fas fa-exclamation"></i><b> Please verify your submission</b>
<p>
{{ session('error') }}
</p>
</div>
@endif
<div class="card">
<div class="card-header">{{ __('Register') }}</div>

View File

@ -12,6 +12,7 @@
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<!-- Fonts -->
<link rel="dns-prefetch" href="//fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
@ -79,5 +80,7 @@
@yield('content')
</main>
</div>
</body>
</html>