mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
create new register route(Laravel) , create new email successfully verified route(Vue)
This commit is contained in:
@@ -4,14 +4,36 @@ namespace App\Actions\Fortify;
|
||||
use App\Models\User;
|
||||
use App\Models\Setting;
|
||||
use App\Models\UserSettings;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\Rule;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
use Laravel\Fortify\Contracts\CreatesNewUsers;
|
||||
use Laravel\Fortify\Contracts\RegisterResponse;
|
||||
|
||||
class CreateNewUser implements CreatesNewUsers
|
||||
{
|
||||
use PasswordValidationRules;
|
||||
|
||||
/**
|
||||
* The guard implementation.
|
||||
*
|
||||
* @var \Illuminate\Contracts\Auth\StatefulGuard
|
||||
*/
|
||||
protected $guard;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @param \Illuminate\Contracts\Auth\StatefulGuard $guard
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(StatefulGuard $guard)
|
||||
{
|
||||
$this->guard = $guard;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate and create a newly registered user.
|
||||
*
|
||||
@@ -62,4 +84,23 @@ class CreateNewUser implements CreatesNewUsers
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new registered user.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Laravel\Fortify\Contracts\CreatesNewUsers $creator
|
||||
* @return \Laravel\Fortify\Contracts\RegisterResponse
|
||||
*/
|
||||
public function store(Request $request,
|
||||
CreatesNewUsers $creator): RegisterResponse
|
||||
{
|
||||
event(new Registered($user = $creator->create($request->all())));
|
||||
|
||||
if(! get_setting('user_verification')) {
|
||||
$this->guard->login($user);
|
||||
};
|
||||
|
||||
return app(RegisterResponse::class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,7 +190,7 @@ class AccountController extends Controller
|
||||
$user->markEmailAsVerified();
|
||||
}
|
||||
|
||||
return redirect()->to('/sign-in');
|
||||
return redirect()->to('/successfully-verified');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -131,7 +131,7 @@ return [
|
||||
*/
|
||||
|
||||
'features' => [
|
||||
Features::registration(),
|
||||
// Features::registration(),
|
||||
//Features::resetPasswords(),
|
||||
// Features::emailVerification(),
|
||||
Features::updateProfileInformation(),
|
||||
|
||||
@@ -477,6 +477,7 @@ return [
|
||||
'page_not_verified.subtitle' => 'Your account is not verified. Before login, verify your account please.',
|
||||
'page_not_verified.resend_text' => 'Do you want resend verification email?',
|
||||
'page_not_verified.resend_button' => 'Resend verification email.',
|
||||
'page_email_successfully_verified' => 'Your account was successfully verified.',
|
||||
'popup_create_folder.folder_default_name' => 'New Folder',
|
||||
'popup_create_folder.label' => 'Type Name',
|
||||
'popup_create_folder.placeholder' => 'Type your name',
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=d630c473dc6b751ec50f",
|
||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=040a7241ea133456200c",
|
||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=649d051ab2fa0118f313",
|
||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=f5634301e476029d6fa1",
|
||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=4145fb89140eac0c34a4",
|
||||
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=7a9a78fcdfebbeff5c3d",
|
||||
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=314fdc603b7dd04d2b9d",
|
||||
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=de43eac3b1627e00424d",
|
||||
@@ -92,5 +92,72 @@
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~2fac28cc.js?id=57c854adb91ed9a9d088",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~d5e36d91.js?id=170765b4fd923b62195c",
|
||||
"/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared-files~chunks/shared/file-browser~ch~52c14f2e.js?id=66afa0e341251a68c3d3",
|
||||
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=eb141834bc24b72d8e92"
|
||||
"/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=eb141834bc24b72d8e92",
|
||||
"/chunks/sign-up.c59b5ac2d31438ca5f36.hot-update.js": "/chunks/sign-up.c59b5ac2d31438ca5f36.hot-update.js",
|
||||
"/chunks/sign-up.e3d231b81b5a9eb681de.hot-update.js": "/chunks/sign-up.e3d231b81b5a9eb681de.hot-update.js",
|
||||
"/chunks/sign-up.d35f347d43ffa7864c3f.hot-update.js": "/chunks/sign-up.d35f347d43ffa7864c3f.hot-update.js",
|
||||
"/chunks/sign-up.ec94f304a3aca7208549.hot-update.js": "/chunks/sign-up.ec94f304a3aca7208549.hot-update.js",
|
||||
"/chunks/sign-up.eb2d418e59432d081679.hot-update.js": "/chunks/sign-up.eb2d418e59432d081679.hot-update.js",
|
||||
"/chunks/sign-up.abeaff91c5d3da520dd6.hot-update.js": "/chunks/sign-up.abeaff91c5d3da520dd6.hot-update.js",
|
||||
"/chunks/sign-up.bb7f3c6ead14ccf3b846.hot-update.js": "/chunks/sign-up.bb7f3c6ead14ccf3b846.hot-update.js",
|
||||
"/chunks/sign-up.5e96dffbb6979d52ab6d.hot-update.js": "/chunks/sign-up.5e96dffbb6979d52ab6d.hot-update.js",
|
||||
"/chunks/sign-up.ea6059d561294d0f175c.hot-update.js": "/chunks/sign-up.ea6059d561294d0f175c.hot-update.js",
|
||||
"/chunks/sign-up.6c5d04f99bc69e0900d8.hot-update.js": "/chunks/sign-up.6c5d04f99bc69e0900d8.hot-update.js",
|
||||
"/chunks/sign-up.e9456151e2190cebce77.hot-update.js": "/chunks/sign-up.e9456151e2190cebce77.hot-update.js",
|
||||
"/js/main.4fd505890b976743ae48.hot-update.js": "/js/main.4fd505890b976743ae48.hot-update.js",
|
||||
"/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~7d45cb3e.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~7d45cb3e.js?id=6c5491727f3a920ce38d",
|
||||
"/chunks/email-verified.js": "/chunks/email-verified.js?id=3d8c13b3e68f233a75ef",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~5b589b18.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~5b589b18.js?id=7b448352c80016333266",
|
||||
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~be2a8402.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~be2a8402.js?id=42c6a5198f1f189d5873",
|
||||
"/chunks/email-verified.d9de5dc0550566f84e03.hot-update.js": "/chunks/email-verified.d9de5dc0550566f84e03.hot-update.js",
|
||||
"/js/main.8ae97fce47fe8b6e1386.hot-update.js": "/js/main.8ae97fce47fe8b6e1386.hot-update.js",
|
||||
"/chunks/email-verified.3f5c020cbaeead942c5a.hot-update.js": "/chunks/email-verified.3f5c020cbaeead942c5a.hot-update.js",
|
||||
"/chunks/email-verified.697c9ec487ce1669db27.hot-update.js": "/chunks/email-verified.697c9ec487ce1669db27.hot-update.js",
|
||||
"/chunks/email-verified.331b5672dee28d0f8e68.hot-update.js": "/chunks/email-verified.331b5672dee28d0f8e68.hot-update.js",
|
||||
"/chunks/email-verified.5006b891b4381c807512.hot-update.js": "/chunks/email-verified.5006b891b4381c807512.hot-update.js",
|
||||
"/chunks/email-verified.b984c75c9e9bd39fb790.hot-update.js": "/chunks/email-verified.b984c75c9e9bd39fb790.hot-update.js",
|
||||
"/chunks/email-verified.2c63a7625aed4340c87e.hot-update.js": "/chunks/email-verified.2c63a7625aed4340c87e.hot-update.js",
|
||||
"/chunks/email-verified.a4eb96e2586d2d21d2c7.hot-update.js": "/chunks/email-verified.a4eb96e2586d2d21d2c7.hot-update.js",
|
||||
"/chunks/email-verified.c0e13f62c082b5f21232.hot-update.js": "/chunks/email-verified.c0e13f62c082b5f21232.hot-update.js",
|
||||
"/chunks/email-verified.929803b660228a51a33e.hot-update.js": "/chunks/email-verified.929803b660228a51a33e.hot-update.js",
|
||||
"/chunks/email-verified.30ea4c69a849f5d1af03.hot-update.js": "/chunks/email-verified.30ea4c69a849f5d1af03.hot-update.js",
|
||||
"/chunks/email-verified.317aee1f5d84b5468533.hot-update.js": "/chunks/email-verified.317aee1f5d84b5468533.hot-update.js",
|
||||
"/chunks/email-verified.87cac52d8e7387a98027.hot-update.js": "/chunks/email-verified.87cac52d8e7387a98027.hot-update.js",
|
||||
"/chunks/email-verified.86296e3b44bfb1d275aa.hot-update.js": "/chunks/email-verified.86296e3b44bfb1d275aa.hot-update.js",
|
||||
"/chunks/email-verified.6af0c93b2ece4fa86400.hot-update.js": "/chunks/email-verified.6af0c93b2ece4fa86400.hot-update.js",
|
||||
"/chunks/email-verified.cd510a3a7213fd5b2f87.hot-update.js": "/chunks/email-verified.cd510a3a7213fd5b2f87.hot-update.js",
|
||||
"/chunks/email-verified.8287bf90e76ce1280e51.hot-update.js": "/chunks/email-verified.8287bf90e76ce1280e51.hot-update.js",
|
||||
"/chunks/email-verified.f4ad7341b0fef6bc0d60.hot-update.js": "/chunks/email-verified.f4ad7341b0fef6bc0d60.hot-update.js",
|
||||
"/chunks/email-verified.fded8f5721cb552e83e3.hot-update.js": "/chunks/email-verified.fded8f5721cb552e83e3.hot-update.js",
|
||||
"/chunks/email-verified.25160ce925957d249aae.hot-update.js": "/chunks/email-verified.25160ce925957d249aae.hot-update.js",
|
||||
"/chunks/email-verified.ecab01fa10ed886eebc0.hot-update.js": "/chunks/email-verified.ecab01fa10ed886eebc0.hot-update.js",
|
||||
"/chunks/email-verified.c2ead76b26b7addec319.hot-update.js": "/chunks/email-verified.c2ead76b26b7addec319.hot-update.js",
|
||||
"/chunks/email-verified.86804eee465fbb67e5eb.hot-update.js": "/chunks/email-verified.86804eee465fbb67e5eb.hot-update.js",
|
||||
"/chunks/email-verified.15f96fcf88ace5e1372b.hot-update.js": "/chunks/email-verified.15f96fcf88ace5e1372b.hot-update.js",
|
||||
"/chunks/email-verified.7e23a87c05357703399a.hot-update.js": "/chunks/email-verified.7e23a87c05357703399a.hot-update.js",
|
||||
"/chunks/email-verified.05e4f9d18227cd2bd6f5.hot-update.js": "/chunks/email-verified.05e4f9d18227cd2bd6f5.hot-update.js",
|
||||
"/chunks/email-verified.7503140105f12f935102.hot-update.js": "/chunks/email-verified.7503140105f12f935102.hot-update.js",
|
||||
"/chunks/email-verified.ee0534c5b8e0144d8a93.hot-update.js": "/chunks/email-verified.ee0534c5b8e0144d8a93.hot-update.js",
|
||||
"/chunks/email-verified.5caedd64ce24ec3f49c5.hot-update.js": "/chunks/email-verified.5caedd64ce24ec3f49c5.hot-update.js",
|
||||
"/chunks/email-verified.a5cdb5f2c4bffbdcfb36.hot-update.js": "/chunks/email-verified.a5cdb5f2c4bffbdcfb36.hot-update.js",
|
||||
"/chunks/email-verified.2fee6b254f11e713b406.hot-update.js": "/chunks/email-verified.2fee6b254f11e713b406.hot-update.js",
|
||||
"/chunks/email-verified.a295d3616db83cc3182c.hot-update.js": "/chunks/email-verified.a295d3616db83cc3182c.hot-update.js",
|
||||
"/js/main.4605e84fbc1170bd3ec5.hot-update.js": "/js/main.4605e84fbc1170bd3ec5.hot-update.js",
|
||||
"/chunks/email-verified.4605e84fbc1170bd3ec5.hot-update.js": "/chunks/email-verified.4605e84fbc1170bd3ec5.hot-update.js",
|
||||
"/chunks/email-verified.8c2f48a95651ad7d86dd.hot-update.js": "/chunks/email-verified.8c2f48a95651ad7d86dd.hot-update.js",
|
||||
"/chunks/email-verified.fed36bf94fb08c42773b.hot-update.js": "/chunks/email-verified.fed36bf94fb08c42773b.hot-update.js",
|
||||
"/chunks/email-verified.4f6d4ae24a00d5ae4d07.hot-update.js": "/chunks/email-verified.4f6d4ae24a00d5ae4d07.hot-update.js",
|
||||
"/chunks/email-verified.569405b97dea60ea1d27.hot-update.js": "/chunks/email-verified.569405b97dea60ea1d27.hot-update.js",
|
||||
"/chunks/email-verified.707268de085dc362fb8a.hot-update.js": "/chunks/email-verified.707268de085dc362fb8a.hot-update.js",
|
||||
"/chunks/email-verified.f2ee7ae5a4f32ff32432.hot-update.js": "/chunks/email-verified.f2ee7ae5a4f32ff32432.hot-update.js",
|
||||
"/chunks/email-verified.829b30702249e29b9a13.hot-update.js": "/chunks/email-verified.829b30702249e29b9a13.hot-update.js",
|
||||
"/chunks/email-verified.0251ae10b3a973945450.hot-update.js": "/chunks/email-verified.0251ae10b3a973945450.hot-update.js",
|
||||
"/chunks/email-verified.6ffc313e2ebf17d91c5b.hot-update.js": "/chunks/email-verified.6ffc313e2ebf17d91c5b.hot-update.js",
|
||||
"/js/main.47e67a30cfdcd8c9a9f7.hot-update.js": "/js/main.47e67a30cfdcd8c9a9f7.hot-update.js",
|
||||
"/chunks/email-verified.47e67a30cfdcd8c9a9f7.hot-update.js": "/chunks/email-verified.47e67a30cfdcd8c9a9f7.hot-update.js",
|
||||
"/js/main.2176e202ed63740976c9.hot-update.js": "/js/main.2176e202ed63740976c9.hot-update.js",
|
||||
"/chunks/email-verified.2176e202ed63740976c9.hot-update.js": "/chunks/email-verified.2176e202ed63740976c9.hot-update.js",
|
||||
"/chunks/sign-up.ed74b6c7ea20cfd15bbe.hot-update.js": "/chunks/sign-up.ed74b6c7ea20cfd15bbe.hot-update.js",
|
||||
"/js/main.673b2e7bb4fa6c94a7bc.hot-update.js": "/js/main.673b2e7bb4fa6c94a7bc.hot-update.js",
|
||||
"/chunks/email-verified.0825e54df39b2dde3b96.hot-update.js": "/chunks/email-verified.0825e54df39b2dde3b96.hot-update.js"
|
||||
}
|
||||
|
||||
9
resources/js/router.js
vendored
9
resources/js/router.js
vendored
@@ -334,6 +334,15 @@ const routesShared = [
|
||||
},
|
||||
]
|
||||
const routesAuth = [
|
||||
{
|
||||
name: 'SuccessfullyVerified',
|
||||
path: '/successfully-verified',
|
||||
component: () =>
|
||||
import(/* webpackChunkName: "chunks/email-verified" */ './views/Auth/SuccessfullyEmailVerified'),
|
||||
meta: {
|
||||
requiresAuth: false
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'SignIn',
|
||||
path: '/sign-in',
|
||||
|
||||
@@ -132,17 +132,23 @@
|
||||
|
||||
// Send request to get user token
|
||||
axios
|
||||
.post('/register', this.register)
|
||||
.post('/api/register', this.register)
|
||||
.then(() => {
|
||||
|
||||
// End loading
|
||||
this.isLoading = false
|
||||
|
||||
// Set login state
|
||||
this.$store.commit('SET_AUTHORIZED', true)
|
||||
|
||||
// Go to files page
|
||||
this.$router.push({name: 'Files'})
|
||||
if(! config.userVerification) {
|
||||
// Set login state
|
||||
this.$store.commit('SET_AUTHORIZED', true)
|
||||
|
||||
// Go to files page
|
||||
this.$router.push({name: 'Files'})
|
||||
} else {
|
||||
// Go to sign-in page
|
||||
this.$router.push({name: 'SignIn'})
|
||||
}
|
||||
|
||||
})
|
||||
.catch(error => {
|
||||
|
||||
|
||||
40
resources/js/views/Auth/SuccessfullyEmailVerified.vue
Normal file
40
resources/js/views/Auth/SuccessfullyEmailVerified.vue
Normal file
@@ -0,0 +1,40 @@
|
||||
<template>
|
||||
<AuthContentWrapper>
|
||||
<AuthContent :visible="true">
|
||||
<img v-if="config.app_logo" class="logo" :src="$getImage(config.app_logo)" :alt="config.app_name">
|
||||
<b v-if="! config.app_logo" class="auth-logo-text">{{ config.app_name }}</b>
|
||||
|
||||
<h1>{{ $t('page_login.title') }}</h1>
|
||||
<h2>{{ $t('page_email_successfully_verified') }}</h2>
|
||||
|
||||
<a href="/sign-in">
|
||||
<AuthButton icon="chevron-right" :text="$t('page_sign_in.button_log_in')"/>
|
||||
</a>
|
||||
|
||||
</AuthContent>
|
||||
</AuthContentWrapper>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AuthContentWrapper from '@/components/Auth/AuthContentWrapper'
|
||||
import AuthContent from '@/components/Auth/AuthContent'
|
||||
import AuthButton from '@/components/Auth/AuthButton'
|
||||
import {mapGetters} from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'SuccessfullyEmailVerified',
|
||||
components: {
|
||||
AuthContentWrapper,
|
||||
AuthContent,
|
||||
AuthButton,
|
||||
},
|
||||
computed: {
|
||||
...mapGetters(['config']),
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '@assets/vuefilemanager/_auth-form';
|
||||
@import '@assets/vuefilemanager/_auth';
|
||||
</style>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Actions\Fortify\CreateNewUser;
|
||||
use App\Http\Controllers\App\AppFunctionsController;
|
||||
use App\Http\Controllers\FileManager\ShareController;
|
||||
use App\Http\Controllers\FileManager\TrashController;
|
||||
@@ -21,6 +22,9 @@ Route::group(['prefix' => 'password'], function () {
|
||||
Route::post('/reset', [ResetPasswordController::class, 'reset']);
|
||||
});
|
||||
|
||||
// Register user
|
||||
Route::post('/register', [CreateNewUser::class, 'store']);
|
||||
|
||||
// User master Routes
|
||||
Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
// Browse
|
||||
|
||||
@@ -65,7 +65,7 @@ class AuthTest extends TestCase
|
||||
]);
|
||||
});
|
||||
|
||||
$this->postJson('/register', [
|
||||
$this->postJson('api/register', [
|
||||
'email' => 'john@doe.com',
|
||||
'password' => 'SecretPassword',
|
||||
'password_confirmation' => 'SecretPassword',
|
||||
|
||||
@@ -279,7 +279,7 @@ class UserAccountTest extends TestCase
|
||||
|
||||
$response = $this->getJson($verificationUrl);
|
||||
|
||||
$response->assertRedirect('sign-in');
|
||||
$response->assertRedirect('successfully-verified');
|
||||
|
||||
$this->assertNotNull(User::find($user->id)->get('email_verified_at'));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user