- 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
60 lines
1.4 KiB
PHP
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('/');
|
|
}
|
|
}
|