diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 0f96c602..22bbf378 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -49,7 +49,8 @@ class RegisterController extends Controller { // check if a user already exists if( DB::table('users')->count() > 0 ) { - return response()->json(['message' => __('errors.already_one_user_registered')], 400); + // return response()->json(['message' => __('errors.already_one_user_registered')], 400); + throw \Illuminate\Validation\ValidationException::withMessages(['taken' => __('errors.already_one_user_registered')]); } $this->validator($request->all())->validate(); diff --git a/resources/js/views/auth/Login.vue b/resources/js/views/auth/Login.vue index ad46c7eb..f84cd6a7 100644 --- a/resources/js/views/auth/Login.vue +++ b/resources/js/views/auth/Login.vue @@ -1,12 +1,12 @@ - + - {{ $t('auth.forms.dont_have_account_yet') }} {{ $t('auth.register') }} + {{ $t('auth.forms.dont_have_account_yet') }} {{ $t('auth.register') }} {{ $t('auth.forms.forgot_your_password') }} {{ $t('auth.forms.request_password_reset') }} @@ -18,6 +18,7 @@ export default { data(){ return { + userCount: null, form: new Form({ email: '', password: '' @@ -57,6 +58,17 @@ return next('/'); } + next(async vm => { + const { data } = await vm.axios.post('api/checkuser') + + if( data.userCount === 0 ) { + return next({ name: 'register' }); + } + else { + vm.userCount = data.userCount + } + }); + next(); }, diff --git a/resources/js/views/auth/Register.vue b/resources/js/views/auth/Register.vue index 3723608f..14959b83 100644 --- a/resources/js/views/auth/Register.vue +++ b/resources/js/views/auth/Register.vue @@ -1,6 +1,8 @@ + + @@ -31,36 +33,29 @@ async handleSubmit(e) { e.preventDefault() - const { data } = await this.form.post('api/register') + this.form.post('/api/register', {returnError: true}) + .then(response => { + localStorage.setItem('user',response.data.message.name) + localStorage.setItem('jwt',response.data.message.token) - if( this.form.errors.any() === false ) { - - localStorage.setItem('user',data.message.name) - localStorage.setItem('jwt',data.message.token) - - if (localStorage.getItem('jwt') != null) { - this.$router.push({name: 'accounts'}) + if (localStorage.getItem('jwt') != null){ + this.$router.go('/'); } - } + }) + .catch(error => { + console.log(error.response) + if( error.response.status === 422 && error.response.data.errors.taken ) { + + this.$notify({ type: 'is-danger', text: this.$t('errors.already_one_user_registered') + ' ' + this.$t('errors.cannot_register_more_user'), duration:-1 }) + } + else if( error.response.status !== 422 ) { + + this.$router.push({ name: 'genericError', params: { err: error.response } }); + } + }); } }, - beforeRouteEnter (to, from, next) { - if (localStorage.getItem('jwt')) { - return next('/'); - } - - next(async vm => { - const { data } = await vm.axios.post('api/checkuser') - - if( data.userCount > 0 ) { - vm.form.isDisabled = true - - vm.$notify({ type: 'is-danger', text: vm.$t('errors.already_one_user_registered') + ' ' + vm.$t('errors.cannot_register_more_user'), duration:-1 }) - } - }); - }, - beforeRouteLeave (to, from, next) { this.$notify({ clean: true diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php index 57f751a0..096c9e65 100644 --- a/resources/lang/en/auth.php +++ b/resources/lang/en/auth.php @@ -52,6 +52,8 @@ return [ 'edit_account' => 'Edit account', 'profile_saved' => 'Profile successfully updated!', 'welcome_to_demo_app_use_those_credentials' => 'Welcome to the 2FAuth demo.You can connect using the email address demo@2fauth.app and the password demo', + 'punchline' => 'Welcome to 2FAuth. + You need an account to go further. Fill this form to register yourself, and please, choose a strong password, 2FA data are sensitives.', ], ];
{{ $t('auth.forms.dont_have_account_yet') }} {{ $t('auth.register') }}
{{ $t('auth.forms.forgot_your_password') }} {{ $t('auth.forms.request_password_reset') }}
+