diff --git a/app/Http/Controllers/Oasis/SubscriptionController.php b/app/Http/Controllers/Oasis/SubscriptionController.php index 2db0f4bc..f0a484f0 100644 --- a/app/Http/Controllers/Oasis/SubscriptionController.php +++ b/app/Http/Controllers/Oasis/SubscriptionController.php @@ -3,12 +3,18 @@ namespace App\Http\Controllers\Oasis; use App\Http\Controllers\Controller; +use App\Http\Requests\User\UpdateUserPasswordRequest; use App\Http\Resources\Oasis\SubscriptionRequestResource; use App\Http\Resources\PlanResource; use App\Models\Oasis\SubscriptionRequest; use App\Services\StripeService; +use Illuminate\Contracts\Foundation\Application; +use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Http\Request; +use Illuminate\Http\Response; +use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\Hash; class SubscriptionController extends Controller { @@ -21,7 +27,7 @@ class SubscriptionController extends Controller * Get subscription request details * * @param SubscriptionRequest $order - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response + * @return Application|ResponseFactory|Response */ public function get_subscription_request(SubscriptionRequest $order) { @@ -34,7 +40,7 @@ class SubscriptionController extends Controller * Get setup intent to register credit card * * @param SubscriptionRequest $order - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response + * @return Application|ResponseFactory|Response */ public function get_setup_intent(SubscriptionRequest $order) { @@ -50,7 +56,7 @@ class SubscriptionController extends Controller * * @param Request $request * @param SubscriptionRequest $order - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response + * @return Application|ResponseFactory|Response */ public function subscribe(Request $request, SubscriptionRequest $order) { @@ -81,8 +87,33 @@ class SubscriptionController extends Controller return response('Done!', 204); } - public function set_password(Request $request) + /** + * Set user password + * + * @param UpdateUserPasswordRequest $request + * @param SubscriptionRequest $order + * @return Application|ResponseFactory|Response + */ + public function set_password(UpdateUserPasswordRequest $request, SubscriptionRequest $order) { - return $request->all(); + // Check unauthorized action + if ($order->status !== 'payed') { + abort(401, "Sorry, you don't have permission."); + } + + // Set user password + $order->user->password = Hash::make($request->password); + $order->user->save(); + + // Update status + $order->update([ + 'status' => 'logged' + ]); + + // Log in user + Auth::login($order->user); + $request->session()->regenerate(); + + return response('Password was set.', 204); } } diff --git a/app/Http/Controllers/User/AccountController.php b/app/Http/Controllers/User/AccountController.php index 74baceb8..30c1df55 100644 --- a/app/Http/Controllers/User/AccountController.php +++ b/app/Http/Controllers/User/AccountController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\User; +use App\Http\Requests\User\UpdateUserPasswordRequest; use App\Models\File; use App\Models\Folder; use App\Http\Resources\InvoiceCollection; @@ -117,13 +118,8 @@ class AccountController extends Controller * @param Request $request * @return ResponseFactory|\Illuminate\Http\Response */ - public function change_password(Request $request) + public function change_password(UpdateUserPasswordRequest $request) { - // Validate request - $request->validate([ - 'password' => ['required', 'string', 'min:6', 'confirmed'], - ]); - // Get user $user = Auth::user(); diff --git a/app/Http/Requests/User/UpdateUserPasswordRequest.php b/app/Http/Requests/User/UpdateUserPasswordRequest.php new file mode 100644 index 00000000..6f4e82cb --- /dev/null +++ b/app/Http/Requests/User/UpdateUserPasswordRequest.php @@ -0,0 +1,30 @@ + 'required|string|min:6|confirmed', + ]; + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index ed7bfe97..04ce7499 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -102,14 +102,6 @@ class RouteServiceProvider extends ServiceProvider ->group(base_path('routes/api.php')); } - protected function mapOasisRoutes() - { - Route::prefix('api/oasis') - ->middleware('api') - ->namespace($this->namespace) - ->group(base_path('routes/oasis.php')); - } - protected function mapShareRoutes() { Route::prefix('api') @@ -141,4 +133,11 @@ class RouteServiceProvider extends ServiceProvider ->namespace($this->namespace) ->group(base_path('routes/setup.php')); } + + // Oasis + protected function mapOasisRoutes() + { + Route::namespace($this->namespace) + ->group(base_path('routes/oasis.php')); + } } diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 06edcc0a..83d4d921 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -70,7 +70,7 @@ "/chunks/shared/file-browser.js": "/chunks/shared/file-browser.js?id=3127fab4cfd3d5f00a72", "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=e8aedb75df7fe227d693", "/chunks/sign-in.js": "/chunks/sign-in.js?id=92a1de80f254cfc9ac91", - "/chunks/sign-up.js": "/chunks/sign-up.js?id=50e81d184a05d3990d89", + "/chunks/sign-up.js": "/chunks/sign-up.js?id=a51dd0f046981790d60c", "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=6eb1bdf3942d7b2dd06f", "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=8048188a201c41f248c6", "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=90c1aa9431689a89eb3d", @@ -175,7 +175,7 @@ "/js/main.55cf4e9bc02bec922581.hot-update.js": "/js/main.55cf4e9bc02bec922581.hot-update.js", "/js/main.b52ecb4afdc47584e38f.hot-update.js": "/js/main.b52ecb4afdc47584e38f.hot-update.js", "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~74bf0fcb.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~74bf0fcb.js?id=6b6737a58e371fc4434b", - "/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=2296813951c371e2be1b", + "/chunks/oasis/platba.js": "/chunks/oasis/platba.js?id=7805c58cc0a244525e88", "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.js": "/chunks/oasis/platba~chunks/upgrade-billing~chunks/upgrade-plan.js?id=4781f8460c7f0f8b21a5", "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~0a9c5e33.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~0a9c5e33.js?id=b28978d3c8aae9b949a5", "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~8394cf85.js": "/vendors~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-i~8394cf85.js?id=d25da0762af813ea588c", @@ -327,5 +327,20 @@ "/chunks/oasis/platba.f78f245efdfd2705115d.hot-update.js": "/chunks/oasis/platba.f78f245efdfd2705115d.hot-update.js", "/chunks/oasis/platba.520ba6d75a64d6f10fdc.hot-update.js": "/chunks/oasis/platba.520ba6d75a64d6f10fdc.hot-update.js", "/chunks/oasis/platba.06ace6b4690832e8d596.hot-update.js": "/chunks/oasis/platba.06ace6b4690832e8d596.hot-update.js", - "/chunks/oasis/platba.38a0815c3b0389ce5797.hot-update.js": "/chunks/oasis/platba.38a0815c3b0389ce5797.hot-update.js" + "/chunks/oasis/platba.38a0815c3b0389ce5797.hot-update.js": "/chunks/oasis/platba.38a0815c3b0389ce5797.hot-update.js", + "/js/main.d67879825385082f0d36.hot-update.js": "/js/main.d67879825385082f0d36.hot-update.js", + "/chunks/oasis/platba.40f4fdbfe7c883c81eec.hot-update.js": "/chunks/oasis/platba.40f4fdbfe7c883c81eec.hot-update.js", + "/chunks/oasis/platba.9a1b581e7c8bf5a6e420.hot-update.js": "/chunks/oasis/platba.9a1b581e7c8bf5a6e420.hot-update.js", + "/chunks/oasis/platba.a303b57f74a3b5c0e553.hot-update.js": "/chunks/oasis/platba.a303b57f74a3b5c0e553.hot-update.js", + "/chunks/oasis/platba.73ec768e1fe32c114a28.hot-update.js": "/chunks/oasis/platba.73ec768e1fe32c114a28.hot-update.js", + "/chunks/oasis/platba.3bc4d9afa4d0dc248145.hot-update.js": "/chunks/oasis/platba.3bc4d9afa4d0dc248145.hot-update.js", + "/chunks/oasis/platba.7b31d89b8593042dbcbd.hot-update.js": "/chunks/oasis/platba.7b31d89b8593042dbcbd.hot-update.js", + "/chunks/oasis/platba.5cb5e899ea459f99df6d.hot-update.js": "/chunks/oasis/platba.5cb5e899ea459f99df6d.hot-update.js", + "/chunks/oasis/platba.52a9e7ecff39884a88b0.hot-update.js": "/chunks/oasis/platba.52a9e7ecff39884a88b0.hot-update.js", + "/chunks/oasis/platba.585762ed0d7dc06714fd.hot-update.js": "/chunks/oasis/platba.585762ed0d7dc06714fd.hot-update.js", + "/chunks/sign-up.f07bfc6e1ac48990d173.hot-update.js": "/chunks/sign-up.f07bfc6e1ac48990d173.hot-update.js", + "/chunks/oasis/platba.7d9316390f22ac19e2d0.hot-update.js": "/chunks/oasis/platba.7d9316390f22ac19e2d0.hot-update.js", + "/chunks/oasis/platba.c61378e3b0b6389cb731.hot-update.js": "/chunks/oasis/platba.c61378e3b0b6389cb731.hot-update.js", + "/chunks/oasis/platba.54736d5bf911a2179219.hot-update.js": "/chunks/oasis/platba.54736d5bf911a2179219.hot-update.js", + "/chunks/oasis/platba.3012a18c6b196cc483bc.hot-update.js": "/chunks/oasis/platba.3012a18c6b196cc483bc.hot-update.js" } diff --git a/resources/js/Oasis/Pages/CreatePasswordAfterPayment.vue b/resources/js/Oasis/Pages/CreatePasswordAfterPayment.vue index d4e6c3cd..d02e8eb9 100644 --- a/resources/js/Oasis/Pages/CreatePasswordAfterPayment.vue +++ b/resources/js/Oasis/Pages/CreatePasswordAfterPayment.vue @@ -1,6 +1,6 @@