diff --git a/composer.stage4.json b/composer.stage4.json deleted file mode 100644 index 9442786..0000000 --- a/composer.stage4.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "require": { - "php": "^8.3", - "ext-sodium": "*", - "laravel/framework": "^13.0" - } -} diff --git a/database/database.sqlite b/database/database.sqlite index 234116b..1cce34c 100644 Binary files a/database/database.sqlite and b/database/database.sqlite differ diff --git a/PADDLE_SUBSCRIPTIONS.md b/docs/PADDLE_SUBSCRIPTIONS.md similarity index 100% rename from PADDLE_SUBSCRIPTIONS.md rename to docs/PADDLE_SUBSCRIPTIONS.md diff --git a/Docs/PORTAL_LAUNCH_FRONTEND.md b/docs/PORTAL_LAUNCH_FRONTEND.md similarity index 100% rename from Docs/PORTAL_LAUNCH_FRONTEND.md rename to docs/PORTAL_LAUNCH_FRONTEND.md diff --git a/rsync-studio-paddle-ids.env b/docs/rsync-studio-paddle-ids.env similarity index 100% rename from rsync-studio-paddle-ids.env rename to docs/rsync-studio-paddle-ids.env diff --git a/routes/api.php b/routes/api.php index 767dc20..7adcab0 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,3 +1,12 @@ group(function () { + Route::post('/activate', [LicenseActivationController::class, 'activate'])->middleware('throttle:license-activation'); + Route::post('/validate', [LicenseActivationController::class, 'validateInstallation'])->middleware('throttle:license-activation'); + Route::post('/deactivate', [LicenseActivationController::class, 'deactivate'])->middleware('throttle:license-activation'); + Route::post('/webhooks/{provider}', PaymentWebhookController::class)->whereIn('provider', ['paddle','lemon-squeezy']); +}); diff --git a/routes/api.stage4.php b/routes/api.stage4.php deleted file mode 100644 index 7adcab0..0000000 --- a/routes/api.stage4.php +++ /dev/null @@ -1,12 +0,0 @@ -group(function () { - Route::post('/activate', [LicenseActivationController::class, 'activate'])->middleware('throttle:license-activation'); - Route::post('/validate', [LicenseActivationController::class, 'validateInstallation'])->middleware('throttle:license-activation'); - Route::post('/deactivate', [LicenseActivationController::class, 'deactivate'])->middleware('throttle:license-activation'); - Route::post('/webhooks/{provider}', PaymentWebhookController::class)->whereIn('provider', ['paddle','lemon-squeezy']); -}); diff --git a/routes/web.php b/routes/web.php index 97fbe0f..9e285aa 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,3 +1,23 @@ view('portal.welcome'))->name('home'); +Route::get('/buy', CheckoutController::class)->name('buy'); +Route::get('/support', [SupportController::class, 'create'])->name('support'); +Route::post('/support', [SupportController::class, 'store'])->middleware('throttle:5,10')->name('support.store'); +Route::view('/privacy', 'legal.privacy')->name('privacy'); +Route::view('/terms', 'legal.terms')->name('terms'); +Route::view('/cookies', 'legal.cookies')->name('cookies'); +Route::middleware('guest')->group(function(){Route::get('/login',[AuthenticatedSessionController::class,'create'])->name('login');Route::post('/login',[AuthenticatedSessionController::class,'store'])->middleware('throttle:login');Route::get('/register',[RegisteredUserController::class,'create'])->name('register');Route::post('/register',[RegisteredUserController::class,'store'])->middleware('throttle:registration');Route::get('/forgot-password',[PasswordController::class,'requestForm'])->name('password.request');Route::post('/forgot-password',[PasswordController::class,'email'])->name('password.email')->middleware('throttle:5,1');Route::get('/reset-password/{token}',[PasswordController::class,'resetForm'])->name('password.reset');Route::post('/reset-password',[PasswordController::class,'reset'])->name('password.update');}); +Route::middleware('auth')->group(function(){Route::post('/logout',[AuthenticatedSessionController::class,'destroy'])->name('logout');Route::get('/verify-email',[EmailVerificationController::class,'notice'])->name('verification.notice');Route::get('/verify-email/{id}/{hash}',[EmailVerificationController::class,'verify'])->middleware(['signed','throttle:6,1'])->name('verification.verify');Route::post('/email/verification-notification',[EmailVerificationController::class,'resend'])->middleware('throttle:6,1')->name('verification.send');}); +Route::middleware(['auth','verified'])->prefix('portal')->name('portal.')->group(function(){Route::get('/',[PortalController::class,'index'])->name('index');Route::get('/licences/{license}',[PortalController::class,'show'])->name('show');Route::post('/licences/{license}/upgrade',[PortalController::class,'upgrade'])->middleware('throttle:5,1')->name('upgrade');Route::delete('/licences/{license}/subscription',[PortalController::class,'cancel'])->middleware('throttle:5,1')->name('cancel');Route::post('/licences/{license}/resend',[PortalController::class,'resend'])->middleware('throttle:3,10')->name('resend');Route::delete('/licences/{license}/activations/{activation}',[PortalController::class,'deactivate'])->name('deactivate');}); +Route::middleware(['auth','verified',AdminOnly::class])->prefix('admin')->name('admin.')->group(function(){Route::get('/',[AdminController::class,'index'])->name('index');Route::get('/licences',[AdminController::class,'licenses'])->name('licenses');Route::get('/licences/{license}',[AdminController::class,'show'])->name('license');Route::post('/licences/{license}/revoke',[AdminController::class,'revoke'])->name('revoke');Route::post('/licences/{license}/restore',[AdminController::class,'restore'])->name('restore');Route::get('/support',[SupportTicketController::class,'index'])->name('support.index');Route::get('/support/{ticket}',[SupportTicketController::class,'show'])->name('support.show');Route::patch('/support/{ticket}',[SupportTicketController::class,'update'])->name('support.update');}); diff --git a/routes/web.stage5.php b/routes/web.stage5.php deleted file mode 100644 index 9e285aa..0000000 --- a/routes/web.stage5.php +++ /dev/null @@ -1,23 +0,0 @@ -view('portal.welcome'))->name('home'); -Route::get('/buy', CheckoutController::class)->name('buy'); -Route::get('/support', [SupportController::class, 'create'])->name('support'); -Route::post('/support', [SupportController::class, 'store'])->middleware('throttle:5,10')->name('support.store'); -Route::view('/privacy', 'legal.privacy')->name('privacy'); -Route::view('/terms', 'legal.terms')->name('terms'); -Route::view('/cookies', 'legal.cookies')->name('cookies'); -Route::middleware('guest')->group(function(){Route::get('/login',[AuthenticatedSessionController::class,'create'])->name('login');Route::post('/login',[AuthenticatedSessionController::class,'store'])->middleware('throttle:login');Route::get('/register',[RegisteredUserController::class,'create'])->name('register');Route::post('/register',[RegisteredUserController::class,'store'])->middleware('throttle:registration');Route::get('/forgot-password',[PasswordController::class,'requestForm'])->name('password.request');Route::post('/forgot-password',[PasswordController::class,'email'])->name('password.email')->middleware('throttle:5,1');Route::get('/reset-password/{token}',[PasswordController::class,'resetForm'])->name('password.reset');Route::post('/reset-password',[PasswordController::class,'reset'])->name('password.update');}); -Route::middleware('auth')->group(function(){Route::post('/logout',[AuthenticatedSessionController::class,'destroy'])->name('logout');Route::get('/verify-email',[EmailVerificationController::class,'notice'])->name('verification.notice');Route::get('/verify-email/{id}/{hash}',[EmailVerificationController::class,'verify'])->middleware(['signed','throttle:6,1'])->name('verification.verify');Route::post('/email/verification-notification',[EmailVerificationController::class,'resend'])->middleware('throttle:6,1')->name('verification.send');}); -Route::middleware(['auth','verified'])->prefix('portal')->name('portal.')->group(function(){Route::get('/',[PortalController::class,'index'])->name('index');Route::get('/licences/{license}',[PortalController::class,'show'])->name('show');Route::post('/licences/{license}/upgrade',[PortalController::class,'upgrade'])->middleware('throttle:5,1')->name('upgrade');Route::delete('/licences/{license}/subscription',[PortalController::class,'cancel'])->middleware('throttle:5,1')->name('cancel');Route::post('/licences/{license}/resend',[PortalController::class,'resend'])->middleware('throttle:3,10')->name('resend');Route::delete('/licences/{license}/activations/{activation}',[PortalController::class,'deactivate'])->name('deactivate');}); -Route::middleware(['auth','verified',AdminOnly::class])->prefix('admin')->name('admin.')->group(function(){Route::get('/',[AdminController::class,'index'])->name('index');Route::get('/licences',[AdminController::class,'licenses'])->name('licenses');Route::get('/licences/{license}',[AdminController::class,'show'])->name('license');Route::post('/licences/{license}/revoke',[AdminController::class,'revoke'])->name('revoke');Route::post('/licences/{license}/restore',[AdminController::class,'restore'])->name('restore');Route::get('/support',[SupportTicketController::class,'index'])->name('support.index');Route::get('/support/{ticket}',[SupportTicketController::class,'show'])->name('support.show');Route::patch('/support/{ticket}',[SupportTicketController::class,'update'])->name('support.update');}); diff --git a/create-rsync-studio-catalog.sh b/scripts/create-rsync-studio-catalog.sh similarity index 100% rename from create-rsync-studio-catalog.sh rename to scripts/create-rsync-studio-catalog.sh diff --git a/install-overlay.sh b/scripts/install-overlay.sh similarity index 100% rename from install-overlay.sh rename to scripts/install-overlay.sh