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:
Darius Rapalis
2026-04-29 12:38:57 +03:00
parent 3e867b999b
commit eafd96df02
2 changed files with 108 additions and 49 deletions

View File

@@ -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');
});