File tree Expand file tree Collapse file tree 7 files changed +94
-5
lines changed
Expand file tree Collapse file tree 7 files changed +94
-5
lines changed Original file line number Diff line number Diff line change @@ -64,6 +64,8 @@ public function index(): View
6464 // Total purchases (licenses + plugins)
6565 $ totalPurchases = $ licenseCount + $ pluginLicenseCount ;
6666
67+ $ developerAccount = $ user ->developerAccount ;
68+
6769 return view ('customer.dashboard ' , compact (
6870 'licenseCount ' ,
6971 'isEapCustomer ' ,
@@ -73,7 +75,8 @@ public function index(): View
7375 'renewalLicenseKey ' ,
7476 'connectedAccountsCount ' ,
7577 'connectedAccountsDescription ' ,
76- 'totalPurchases '
78+ 'totalPurchases ' ,
79+ 'developerAccount '
7780 ));
7881 }
7982
Original file line number Diff line number Diff line change @@ -51,6 +51,12 @@ public function start(Request $request): RedirectResponse
5151 ]);
5252 }
5353
54+ // If Stripe onboarding is already complete, skip the Stripe redirect
55+ if ($ developerAccount ->hasCompletedOnboarding ()) {
56+ return to_route ('customer.plugins.create ' )
57+ ->with ('success ' , 'Terms accepted! You can now submit plugins. ' );
58+ }
59+
5460 try {
5561 $ onboardingUrl = $ this ->stripeConnectService ->createOnboardingLink ($ developerAccount );
5662
Original file line number Diff line number Diff line change 2929 </div >
3030 </div >
3131
32+ {{-- Updated Terms Banner --}}
33+ @if ($developerAccount && $developerAccount -> hasAcceptedPluginTerms () && ! $developerAccount -> hasAcceptedCurrentTerms () )
34+ <div class =" mx-auto max-w-7xl px-4 sm:px-6 lg:px-8" >
35+ <div class =" mb-6 rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-900/50 dark:bg-amber-900/20" >
36+ <div class =" flex items-center justify-between gap-4" >
37+ <div class =" flex items-center gap-3" >
38+ <svg class =" size-5 shrink-0 text-amber-400" viewBox =" 0 0 20 20" fill =" currentColor" >
39+ <path fill-rule =" evenodd" d =" M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule =" evenodd" />
40+ </svg >
41+ <p class =" text-sm font-medium text-amber-800 dark:text-amber-200" >
42+ Our <a href =" {{ route (' developer-terms' ) } }" class =" underline" target =" _blank" >Plugin Developer Terms and Conditions</a > have been updated. You must accept the new terms before you can submit new plugins.
43+ </p >
44+ </div >
45+ <a href =" {{ route (' customer.developer.onboarding' ) } }" class =" shrink-0 rounded-md bg-amber-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-amber-500" >
46+ Review & ; Accept
47+ </a >
48+ </div >
49+ </div >
50+ </div >
51+ @endif
52+
3253 {{-- Dashboard Cards --}}
3354 <div class =" mx-auto max-w-7xl px-4 py-6 sm:px-6 lg:px-8" >
3455 <div class =" grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3" >
Original file line number Diff line number Diff line change 3838 @endif
3939 </div >
4040
41+ {{-- Updated Terms Banner --}}
42+ @if ($developerAccount && $developerAccount -> hasAcceptedPluginTerms () && ! $developerAccount -> hasAcceptedCurrentTerms () )
43+ <div class =" mx-auto max-w-7xl px-4 sm:px-6 lg:px-8" >
44+ <div class =" mb-6 rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-900/50 dark:bg-amber-900/20" >
45+ <div class =" flex items-center justify-between gap-4" >
46+ <div class =" flex items-center gap-3" >
47+ <svg class =" size-5 shrink-0 text-amber-400" viewBox =" 0 0 20 20" fill =" currentColor" >
48+ <path fill-rule =" evenodd" d =" M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule =" evenodd" />
49+ </svg >
50+ <p class =" text-sm font-medium text-amber-800 dark:text-amber-200" >
51+ Our <a href =" {{ route (' developer-terms' ) } }" class =" underline" target =" _blank" >Plugin Developer Terms and Conditions</a > have been updated. You must accept the new terms before you can submit new plugins.
52+ </p >
53+ </div >
54+ <a href =" {{ route (' customer.developer.onboarding' ) } }" class =" shrink-0 rounded-md bg-amber-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-amber-500" >
55+ Review & ; Accept
56+ </a >
57+ </div >
58+ </div >
59+ </div >
60+ @endif
61+
4162 {{-- Content --}}
4263 <div class =" mx-auto max-w-7xl px-4 py-6 sm:px-6 lg:px-8" >
4364 {{-- Stats Grid --}}
Original file line number Diff line number Diff line change 9797 </div >
9898
9999 {{-- Status for existing account --}}
100- @if ($hasExistingAccount && $developerAccount )
100+ @if ($hasExistingAccount && $developerAccount && ! $developerAccount -> hasCompletedOnboarding () )
101101 <div class =" mt-8 rounded-lg border border-yellow-200 bg-yellow-50 p-4 dark:border-yellow-800 dark:bg-yellow-900/20" >
102102 <div class =" flex items-center gap-3" >
103103 <svg xmlns =" http://www.w3.org/2000/svg" fill =" none" viewBox =" 0 0 24 24" stroke-width =" 1.5" stroke =" currentColor" class =" size-5 text-yellow-600 dark:text-yellow-400" >
Original file line number Diff line number Diff line change 9898 </div >
9999 </div >
100100 </div >
101- @elseif (! $hasAcceptedTerms )
102- {{-- Developer Onboarding Required --}}
101+ @elseif (! $hasCompletedOnboarding )
102+ {{-- Developer Onboarding Required (never onboarded) --}}
103103 <div class =" rounded-lg border border-amber-200 bg-amber-50 p-6 dark:border-amber-900/50 dark:bg-amber-900/20" >
104104 <div class =" flex" >
105105 <div class =" shrink-0" >
127127 </div >
128128 </div >
129129 </div >
130+ @elseif (! $hasAcceptedTerms )
131+ {{-- Updated terms need acceptance (already onboarded) --}}
132+ <div class =" rounded-lg border border-amber-200 bg-amber-50 p-4 dark:border-amber-900/50 dark:bg-amber-900/20" >
133+ <div class =" flex items-center justify-between gap-4" >
134+ <div class =" flex items-center gap-3" >
135+ <svg class =" size-5 shrink-0 text-amber-400" viewBox =" 0 0 20 20" fill =" currentColor" >
136+ <path fill-rule =" evenodd" d =" M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z" clip-rule =" evenodd" />
137+ </svg >
138+ <p class =" text-sm font-medium text-amber-800 dark:text-amber-200" >
139+ Our <a href =" {{ route (' developer-terms' ) } }" class =" underline" target =" _blank" >Plugin Developer Terms and Conditions</a > have been updated. You must accept the new terms before you can submit new plugins.
140+ </p >
141+ </div >
142+ <a href =" {{ route (' customer.developer.onboarding' ) } }" class =" shrink-0 rounded-md bg-amber-600 px-3 py-1.5 text-sm font-medium text-white hover:bg-amber-500" >
143+ Review & ; Accept
144+ </a >
145+ </div >
146+ </div >
130147 @else
131148 <form
132149 method =" POST"
Original file line number Diff line number Diff line change @@ -251,7 +251,26 @@ public function plugin_create_page_does_not_show_warning_when_terms_accepted():
251251 'github_id ' => '12345 ' ,
252252 'github_username ' => 'testdev ' ,
253253 ]);
254- DeveloperAccount::factory ()->withAcceptedTerms ()->create ([
254+ DeveloperAccount::factory ()->onboarded ()->withAcceptedTerms ()->create ([
255+ 'user_id ' => $ user ->id ,
256+ ]);
257+
258+ $ response = $ this ->actingAs ($ user )
259+ ->get (route ('customer.plugins.create ' ));
260+
261+ $ response ->assertStatus (200 );
262+ $ response ->assertDontSee ('Developer Onboarding Required ' );
263+ $ response ->assertDontSee ('have been updated ' );
264+ }
265+
266+ /** @test */
267+ public function plugin_create_page_shows_updated_terms_banner_for_outdated_version (): void
268+ {
269+ $ user = User::factory ()->create ([
270+ 'github_id ' => '12345 ' ,
271+ 'github_username ' => 'testdev ' ,
272+ ]);
273+ DeveloperAccount::factory ()->onboarded ()->withAcceptedTerms ('0.9 ' )->create ([
255274 'user_id ' => $ user ->id ,
256275 ]);
257276
@@ -260,5 +279,7 @@ public function plugin_create_page_does_not_show_warning_when_terms_accepted():
260279
261280 $ response ->assertStatus (200 );
262281 $ response ->assertDontSee ('Developer Onboarding Required ' );
282+ $ response ->assertSee ('have been updated ' );
283+ $ response ->assertSee ('Review & Accept ' , false );
263284 }
264285}
You can’t perform that action at this time.
0 commit comments