feat: integrate login/registration into PurchaseWizard

This commit is contained in:
Codex Agent
2025-10-04 21:38:03 +02:00
parent 3c0bbb688b
commit fdaa2bec62
52 changed files with 1477 additions and 732 deletions

View File

@@ -33,12 +33,14 @@ class AuthenticatedSessionController extends Controller
try {
$request->authenticate();
} catch (\Illuminate\Validation\ValidationException $e) {
$request->session()->flash('error', __('auth.login_failed'));
return redirect()->route('login')->withErrors($e->errors());
}
Log::info('Login attempt', ['login' => $request->login, 'authenticated' => Auth::check()]);
$request->session()->regenerate();
$request->session()->flash('success', __('auth.login_success'));
$user = Auth::user();
if ($user && $user->email_verified_at === null) {

View File

@@ -119,8 +119,9 @@ class MarketingRegisterController extends Controller
if (!empty($validated['package_id'])) {
$package = Package::find($validated['package_id']);
if (!$package) {
$request->session()->flash('error', __('auth.registration_failed'));
// No action if package not found
return redirect()->route('dashboard')->with('success', 'Registrierung erfolgreich! Bitte verifizieren Sie Ihre E-Mail.');
return redirect()->route('dashboard')->with('success', __('auth.registration_success'));
} else if ((float) $package->price <= 0.0) {
// Assign free package
TenantPackage::create([
@@ -129,7 +130,7 @@ class MarketingRegisterController extends Controller
'active' => true,
'price' => 0,
]);
PackagePurchase::create([
'tenant_id' => $tenant->id,
'package_id' => $package->id,
@@ -138,26 +139,31 @@ class MarketingRegisterController extends Controller
'purchased_at' => now(),
'provider_id' => 'free',
]);
$tenant->update(['subscription_status' => 'active']);
$user->update(['role' => 'tenant_admin', 'pending_purchase' => false]);
Auth::login($user); // Re-login to refresh session
$request->session()->flash('success', __('auth.registration_success'));
if ($shouldAutoVerify) {
return redirect()->route('dashboard')->with('success', 'Registrierung und Package-Zuweisung erfolgreich!');
return redirect()->route('dashboard')->with('success', __('auth.registration_success'));
} else {
return redirect()->route('verification.notice')->with('status', 'registration-success');
}
} else {
// For paid package, keep pending_purchase true, redirect to buy
return redirect()->route('buy.packages', $package->id)->with('success', 'Registrierung erfolgreich! Fahren Sie mit dem Kauf fort.');
$request->session()->flash('success', __('auth.registration_success'));
return redirect()->route('buy.packages', $package->id)->with('success', __('auth.registration_success'));
}
}
// No package
$request->session()->flash('success', __('auth.registration_success'));
if ($shouldAutoVerify) {
return redirect()->route('dashboard')->with('success', 'Registrierung erfolgreich!');
return redirect()->route('dashboard')->with('success', __('auth.registration_success'));
}
session()->flash('status', 'registration-success');