From 5b6667c46121661bc078daa3b472455c6b0293bd Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 30 Aug 2023 16:01:38 +0200 Subject: [PATCH] refactor + fixes --- app/Http/Controllers/Controller.php | 8 +++---- app/Http/Kernel.php | 2 +- .../Livewire/Subscription/PricingPlans.php | 2 +- app/Http/Livewire/Team/Create.php | 2 +- app/Http/Livewire/Team/Delete.php | 2 +- app/Http/Livewire/Team/Form.php | 1 - ...ptionValid.php => IsSubscriptionValid.php} | 2 +- app/Models/User.php | 1 + bootstrap/helpers/shared.php | 3 ++- bootstrap/helpers/subscriptions.php | 3 +-- config/constants.php | 4 ++-- .../views/components/limit-reached.blade.php | 2 +- .../components/navbar-subscription.blade.php | 9 ++++++++ resources/views/components/navbar.blade.php | 2 +- .../views/components/pricing-plans.blade.php | 22 +++++++++---------- .../views/components/team/navbar.blade.php | 2 +- .../livewire/subscription/actions.blade.php | 2 +- resources/views/profile.blade.php | 2 +- .../{show.blade.php => index.blade.php} | 7 ++++-- .../team/{show.blade.php => index.blade.php} | 2 +- routes/web.php | 4 ++-- 21 files changed, 48 insertions(+), 36 deletions(-) rename app/Http/Middleware/{SubscriptionValid.php => IsSubscriptionValid.php} (97%) rename resources/views/subscription/{show.blade.php => index.blade.php} (62%) rename resources/views/team/{show.blade.php => index.blade.php} (86%) diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index e3d8420ab..a92929607 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -30,7 +30,7 @@ class Controller extends BaseController if (!is_cloud()) { abort(404); } - return view('subscription.show', [ + return view('subscription.index', [ 'settings' => InstanceSettings::get(), ]); } @@ -80,7 +80,7 @@ class Controller extends BaseController if (auth()->user()->isAdminFromSession()) { $invitations = TeamInvitation::whereTeamId(currentTeam()->id)->get(); } - return view('team.show', [ + return view('team.index', [ 'invitations' => $invitations, ]); } @@ -129,7 +129,7 @@ class Controller extends BaseController if ($diff <= config('constants.invitation.link.expiration')) { $user->teams()->attach($invitation->team->id, ['role' => $invitation->role]); $invitation->delete(); - return redirect()->route('team.show'); + return redirect()->route('team.index'); } else { $invitation->delete(); abort(401); @@ -151,7 +151,7 @@ class Controller extends BaseController abort(401); } $invitation->delete(); - return redirect()->route('team.show'); + return redirect()->route('team.index'); } catch (Throwable $th) { throw $th; } diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php index eb93b6d35..be63b9694 100644 --- a/app/Http/Kernel.php +++ b/app/Http/Kernel.php @@ -38,7 +38,7 @@ class Kernel extends HttpKernel \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\CheckForcePasswordReset::class, - \App\Http\Middleware\SubscriptionValid::class, + \App\Http\Middleware\IsSubscriptionValid::class, \App\Http\Middleware\IsBoardingFlow::class, ], diff --git a/app/Http/Livewire/Subscription/PricingPlans.php b/app/Http/Livewire/Subscription/PricingPlans.php index fcf24237f..cc43599bb 100644 --- a/app/Http/Livewire/Subscription/PricingPlans.php +++ b/app/Http/Livewire/Subscription/PricingPlans.php @@ -49,7 +49,7 @@ class PricingPlans extends Component ], 'mode' => 'subscription', 'success_url' => route('subscription.success'), - 'cancel_url' => route('subscription.show',['cancelled' => true]), + 'cancel_url' => route('subscription.index',['cancelled' => true]), ]; $customer = currentTeam()->subscription?->stripe_customer_id ?? null; if ($customer) { diff --git a/app/Http/Livewire/Team/Create.php b/app/Http/Livewire/Team/Create.php index bd2c24313..0e721814c 100644 --- a/app/Http/Livewire/Team/Create.php +++ b/app/Http/Livewire/Team/Create.php @@ -30,7 +30,7 @@ class Create extends Component ]); auth()->user()->teams()->attach($team, ['role' => 'admin']); refreshSession(); - return redirect()->route('team.show'); + return redirect()->route('team.index'); } catch (\Throwable $th) { return general_error_handler($th, $this); } diff --git a/app/Http/Livewire/Team/Delete.php b/app/Http/Livewire/Team/Delete.php index 5e206704b..32e386ebc 100644 --- a/app/Http/Livewire/Team/Delete.php +++ b/app/Http/Livewire/Team/Delete.php @@ -25,6 +25,6 @@ class Delete extends Component }); refreshSession(); - return redirect()->route('team.show'); + return redirect()->route('team.index'); } } diff --git a/app/Http/Livewire/Team/Form.php b/app/Http/Livewire/Team/Form.php index caa6d2c9e..16aff27ee 100644 --- a/app/Http/Livewire/Team/Form.php +++ b/app/Http/Livewire/Team/Form.php @@ -28,7 +28,6 @@ class Form extends Component try { $this->team->save(); refreshSession(); - $this->emit('reloadWindow'); } catch (\Throwable $th) { return general_error_handler($th, $this); } diff --git a/app/Http/Middleware/SubscriptionValid.php b/app/Http/Middleware/IsSubscriptionValid.php similarity index 97% rename from app/Http/Middleware/SubscriptionValid.php rename to app/Http/Middleware/IsSubscriptionValid.php index 824133f5a..01fa7a8d0 100644 --- a/app/Http/Middleware/SubscriptionValid.php +++ b/app/Http/Middleware/IsSubscriptionValid.php @@ -6,7 +6,7 @@ use Closure; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\Response; -class SubscriptionValid +class IsSubscriptionValid { public function handle(Request $request, Closure $next): Response { diff --git a/app/Models/User.php b/app/Models/User.php index ccbfd14df..ca3cf0bd3 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -32,6 +32,7 @@ class User extends Authenticatable implements SendsEmail $team = [ 'name' => $user->name . "'s Team", 'personal_team' => true, + 'boarding' => true ]; if ($user->id === 0) { $team['id'] = 0; diff --git a/bootstrap/helpers/shared.php b/bootstrap/helpers/shared.php index da8eaebdf..96a798cdf 100644 --- a/bootstrap/helpers/shared.php +++ b/bootstrap/helpers/shared.php @@ -53,7 +53,8 @@ function showBoarding(): bool } function refreshSession(): void { - session(['currentTeam' => currentTeam()]); + $team = Team::find(currentTeam()->id); + session(['currentTeam' => $team]); } function general_error_handler(Throwable | null $err = null, $that = null, $isJson = false, $customErrorMessage = null): mixed { diff --git a/bootstrap/helpers/subscriptions.php b/bootstrap/helpers/subscriptions.php index ab266da2c..ce58d1790 100644 --- a/bootstrap/helpers/subscriptions.php +++ b/bootstrap/helpers/subscriptions.php @@ -70,7 +70,6 @@ function isSubscriptionActive() } function isSubscriptionOnGracePeriod() { - $team = currentTeam(); if (!$team) { return false; @@ -96,7 +95,7 @@ function subscriptionProvider() function getStripeCustomerPortalSession(Team $team) { Stripe::setApiKey(config('subscription.stripe_api_key')); - $return_url = route('team.show'); + $return_url = route('team.index'); $stripe_customer_id = $team->subscription->stripe_customer_id; $session = \Stripe\BillingPortal\Session::create([ 'customer' => $stripe_customer_id, diff --git a/config/constants.php b/config/constants.php index 6cb455265..be7710e6b 100644 --- a/config/constants.php +++ b/config/constants.php @@ -12,8 +12,8 @@ return [ 'limits' => [ 'server' => [ 'basic' => 1, - 'pro' => 3, - 'ultimate' => 9999999999999999999, + 'pro' => 10, + 'ultimate' => 25, ], ], ]; diff --git a/resources/views/components/limit-reached.blade.php b/resources/views/components/limit-reached.blade.php index c2c4b4b0e..6b0f6f2ad 100644 --- a/resources/views/components/limit-reached.blade.php +++ b/resources/views/components/limit-reached.blade.php @@ -1,6 +1,6 @@
You have reached the limit of {{ $name }} you can create. - Please upgrade your + Please upgrade your subscription to create more {{ $name }}.
diff --git a/resources/views/components/navbar-subscription.blade.php b/resources/views/components/navbar-subscription.blade.php index 08248e61e..73e67410b 100644 --- a/resources/views/components/navbar-subscription.blade.php +++ b/resources/views/components/navbar-subscription.blade.php @@ -1,6 +1,15 @@ @auth