Prompt: logout button does nothing, make clicking on it log user out and take them back to homepage, similarly, if user is already logged in and visits homepage/login/register screens, redirect them to dashboard
Session Total cost: $10.52 (costs may be inaccurate due to usage of unknown models) Total duration (API): 1h 26m 2s Total duration (wall): 2h 35m 7s Total code changes: 4203 lines added, 303 lines removed Usage by model: qwen/qwen3.6-35b-a3b: 505.7k input, 125.3k output, 23.5m cache read, 0 cache write ($10.45) claude-haiku-4-5: 9.4k input, 13.3k output, 8.3k cache read, 0 cache write ($0.0767) Runtime: llamacpp Model: Qwen 3.6 35B A3B Q4 K M Coding Agent: ClaudeCode
This commit is contained in:
113
routes/web.php
113
routes/web.php
@@ -7,71 +7,86 @@ use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// Homepage
|
||||
// Homepage (redirect logged-in users to dashboard)
|
||||
Route::get('/', function () {
|
||||
return view('home');
|
||||
})->name('home');
|
||||
|
||||
// Auth pages
|
||||
Route::get('/login', function () {
|
||||
return view('auth.login');
|
||||
})->name('login');
|
||||
|
||||
Route::post('/login', function (Request $request) {
|
||||
$validated = $request->validate([
|
||||
'email' => ['required', 'email'],
|
||||
'password' => ['required'],
|
||||
]);
|
||||
|
||||
if (Auth::attempt(['email' => $validated['email'], 'password' => $validated['password']], $request->boolean('remember'))) {
|
||||
$request->session()->regenerate();
|
||||
|
||||
if (auth()->check()) {
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
|
||||
return back()->withErrors([
|
||||
'email' => 'The provided credentials do not match our records.',
|
||||
])->onlyInput('email');
|
||||
})->name('login.post');
|
||||
return view('home');
|
||||
})->name('home');
|
||||
|
||||
Route::get('/register', function () {
|
||||
return view('auth.register');
|
||||
})->name('register');
|
||||
// Auth pages (guest only)
|
||||
Route::middleware('guest')->group(function () {
|
||||
Route::get('/login', function () {
|
||||
return view('auth.login');
|
||||
})->name('login');
|
||||
|
||||
Route::post('/register', function (Request $request) {
|
||||
$validated = $request->validate([
|
||||
'first_name' => ['required', 'string', 'max:255'],
|
||||
'last_name' => ['required', 'string', 'max:255'],
|
||||
'email' => ['required', 'email', 'max:255', 'unique:users,email'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
]);
|
||||
Route::post('/login', function (Request $request) {
|
||||
$validated = $request->validate([
|
||||
'email' => ['required', 'email'],
|
||||
'password' => ['required'],
|
||||
]);
|
||||
|
||||
$user = User::create([
|
||||
'name' => $validated['first_name'].' '.$validated['last_name'],
|
||||
'email' => $validated['email'],
|
||||
'password' => Hash::make($validated['password']),
|
||||
'has_organization' => false,
|
||||
]);
|
||||
if (Auth::attempt(['email' => $validated['email'], 'password' => $validated['password']], $request->boolean('remember'))) {
|
||||
$request->session()->regenerate();
|
||||
|
||||
Auth::login($user);
|
||||
$request->session()->regenerate();
|
||||
return redirect()->route('dashboard');
|
||||
}
|
||||
|
||||
return redirect()->route('dashboard');
|
||||
})->name('register.post');
|
||||
return back()->withErrors([
|
||||
'email' => 'The provided credentials do not match our records.',
|
||||
])->onlyInput('email');
|
||||
})->name('login.post');
|
||||
|
||||
// Organization CRUD
|
||||
Route::get('/register', function () {
|
||||
return view('auth.register');
|
||||
})->name('register');
|
||||
|
||||
Route::post('/register', function (Request $request) {
|
||||
$validated = $request->validate([
|
||||
'first_name' => ['required', 'string', 'max:255'],
|
||||
'last_name' => ['required', 'string', 'max:255'],
|
||||
'email' => ['required', 'email', 'max:255', 'unique:users,email'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
]);
|
||||
|
||||
$user = User::create([
|
||||
'name' => $validated['first_name'].' '.$validated['last_name'],
|
||||
'email' => $validated['email'],
|
||||
'password' => Hash::make($validated['password']),
|
||||
'has_organization' => false,
|
||||
]);
|
||||
|
||||
Auth::login($user);
|
||||
$request->session()->regenerate();
|
||||
|
||||
return redirect()->route('dashboard');
|
||||
})->name('register.post');
|
||||
});
|
||||
|
||||
// Logout
|
||||
Route::post('/logout', function (Request $request) {
|
||||
Auth::logout();
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
return redirect()->route('home');
|
||||
})->name('logout');
|
||||
|
||||
// Dashboard (auth only)
|
||||
Route::middleware('auth')->get('/dashboard', function () {
|
||||
return view('dashboard');
|
||||
})->name('dashboard');
|
||||
|
||||
// Organization CRUD (auth only)
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::post('/organizations', [OrganizationController::class, 'store'])->name('organizations.store');
|
||||
Route::delete('/organizations/{organization}', [OrganizationController::class, 'destroy'])->name('organizations.destroy');
|
||||
Route::put('/organizations/{organization}/switch', [OrganizationController::class, 'switch'])->name('organizations.switch');
|
||||
});
|
||||
|
||||
// Dashboard
|
||||
Route::get('/dashboard', function () {
|
||||
return view('dashboard');
|
||||
})->name('dashboard');
|
||||
|
||||
// Organization management
|
||||
// Organization management (auth only)
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::get('/organizations/{organization}', [OrganizationController::class, 'show'])->name('organizations.show');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user