diff --git a/.php_cs.dist b/.php-cs-fixer.dist.php
similarity index 100%
rename from .php_cs.dist
rename to .php-cs-fixer.dist.php
diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php
index c6b11538..5c753920 100644
--- a/app/Actions/Fortify/CreateNewUser.php
+++ b/app/Actions/Fortify/CreateNewUser.php
@@ -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);
+ }
}
diff --git a/app/Http/Controllers/User/AccountController.php b/app/Http/Controllers/User/AccountController.php
index 7dd0d6aa..fa8e418c 100644
--- a/app/Http/Controllers/User/AccountController.php
+++ b/app/Http/Controllers/User/AccountController.php
@@ -190,7 +190,7 @@ class AccountController extends Controller
$user->markEmailAsVerified();
}
- return redirect()->to('/sign-in');
+ return redirect()->to('/successfully-verified');
}
/**
diff --git a/config/fortify.php b/config/fortify.php
index b5c832a2..41f38d15 100644
--- a/config/fortify.php
+++ b/config/fortify.php
@@ -131,7 +131,7 @@ return [
*/
'features' => [
- Features::registration(),
+ // Features::registration(),
//Features::resetPasswords(),
// Features::emailVerification(),
Features::updateProfileInformation(),
diff --git a/config/language-translations.php b/config/language-translations.php
index 3d33ba2c..5034c3c7 100644
--- a/config/language-translations.php
+++ b/config/language-translations.php
@@ -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',
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index ba645ff8..c4d632f3 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -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"
}
diff --git a/resources/js/router.js b/resources/js/router.js
index 3edf4294..183e0bec 100644
--- a/resources/js/router.js
+++ b/resources/js/router.js
@@ -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',
diff --git a/resources/js/views/Auth/SignUp.vue b/resources/js/views/Auth/SignUp.vue
index 5cb5c0c6..33d7e24e 100644
--- a/resources/js/views/Auth/SignUp.vue
+++ b/resources/js/views/Auth/SignUp.vue
@@ -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 => {
diff --git a/resources/js/views/Auth/SuccessfullyEmailVerified.vue b/resources/js/views/Auth/SuccessfullyEmailVerified.vue
new file mode 100644
index 00000000..72850e01
--- /dev/null
+++ b/resources/js/views/Auth/SuccessfullyEmailVerified.vue
@@ -0,0 +1,40 @@
+
+
+
+
+ {{ config.app_name }}
+
+ {{ $t('page_login.title') }}
+ {{ $t('page_email_successfully_verified') }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/routes/api.php b/routes/api.php
index ff8f82d8..4bc88253 100644
--- a/routes/api.php
+++ b/routes/api.php
@@ -1,5 +1,6 @@
'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
diff --git a/tests/Feature/Accounts/AuthTest.php b/tests/Feature/Accounts/AuthTest.php
index 32f4ec8b..1ee36623 100644
--- a/tests/Feature/Accounts/AuthTest.php
+++ b/tests/Feature/Accounts/AuthTest.php
@@ -65,7 +65,7 @@ class AuthTest extends TestCase
]);
});
- $this->postJson('/register', [
+ $this->postJson('api/register', [
'email' => 'john@doe.com',
'password' => 'SecretPassword',
'password_confirmation' => 'SecretPassword',
diff --git a/tests/Feature/Accounts/UserAccountTest.php b/tests/Feature/Accounts/UserAccountTest.php
index 991a0b81..67f50797 100644
--- a/tests/Feature/Accounts/UserAccountTest.php
+++ b/tests/Feature/Accounts/UserAccountTest.php
@@ -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'));
}