Files
hub/app/Http/Controllers/Auth/AuthenticatedSessionController.php
kelly 5bbc740962 feat: Implement Phase 9 (Campaign UX) and Phase 10 (Conversations/Messaging)
- Add marketing_channel_id to broadcasts table
- Create Campaign views (index, create, edit, show) with modern UX
- Implement test send functionality with provider abstraction
- Create Conversations data model (conversations, participants, messages)
- Create Messaging inbox UI with conversation threads
- Link broadcast sends to conversation system
- Add Marketing nav section (premium feature, gated by has_marketing flag)
- Update BroadcastController with sendTest method
- Create MessagingController with conversation management
- Add SMS provider support (Twilio, Telnyx, Cannabrands)
- Create comprehensive platform naming and style guide

Phase 9 Complete: Full campaign management UX
Phase 10 Complete: Messaging foundation ready for two-way communication
2025-11-20 23:43:47 -07:00

60 lines
1.4 KiB
PHP

<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
class AuthenticatedSessionController extends Controller
{
/**
* Display the business login view.
*/
public function create(): View
{
return view('business.auth.login');
}
/**
* Handle an incoming authentication request.
*/
public function store(LoginRequest $request): RedirectResponse
{
$request->authenticate();
$user = Auth::user();
// Only block non-super-admins if not approved
if (! $user->hasRole('Super Admin') && ! $user->isApproved()) {
Auth::logout();
return redirect()->route('login')->withErrors([
'email' => 'Your account is not approved yet. Please wait for admin approval.',
]);
}
$request->session()->regenerate();
// Redirect to main dashboard ( simple route)
return redirect(dashboard_url());
}
/**
* Destroy an authenticated session.
*/
public function destroy(Request $request): RedirectResponse
{
Auth::guard('web')->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
}
}