feat: integrate login/registration into PurchaseWizard
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user