Refactor install wizard and mail configuration

This commit is contained in:
Darko Gjorgjijoski
2026-04-09 10:06:27 +02:00
parent 1d2cca5837
commit 9174254165
55 changed files with 3102 additions and 1162 deletions

View File

@@ -54,7 +54,7 @@ class DatabaseConfigurationController extends Controller
case 'sqlite':
$databaseData = [
'database_connection' => 'sqlite',
'database_name' => config('database.connections.sqlite.database', storage_path('database.sqlite')),
'database_name' => config('database.connections.sqlite.database') ?: 'storage/app/database.sqlite',
];
break;

View File

@@ -4,26 +4,47 @@ namespace App\Http\Controllers\Setup;
use App\Http\Controllers\Controller;
use App\Models\User;
use Auth;
use App\Support\InstallWizardAuth;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
/**
* Handle the incoming request.
*
* @return Response
*/
public function __invoke(Request $request)
public function __invoke(Request $request): JsonResponse
{
$user = User::where('role', 'super admin')->first();
Auth::login($user);
if (! $user) {
return response()->json([
'message' => 'Super admin user not found.',
], 404);
}
$company = $user->companies()->first();
if (! $company) {
return response()->json([
'message' => 'Super admin company not found.',
], 422);
}
Auth::guard('web')->logout();
if ($request->hasSession()) {
$request->session()->invalidate();
$request->session()->regenerateToken();
}
$user->tokens()->where('name', InstallWizardAuth::TOKEN_NAME)->delete();
$token = $user->createToken(
InstallWizardAuth::TOKEN_NAME,
[InstallWizardAuth::TOKEN_ABILITY],
)->plainTextToken;
return response()->json([
'success' => true,
'type' => 'Bearer',
'token' => $token,
'user' => $user,
'company' => $user->companies()->first(),
'company' => $company,
]);
}
}

View File

@@ -0,0 +1,35 @@
<?php
namespace App\Http\Controllers\Setup;
use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class SessionLoginController extends Controller
{
public function __invoke(Request $request): JsonResponse
{
$user = $request->user();
if (Auth::guard('web')->check()) {
Auth::guard('web')->logout();
}
if ($request->hasSession()) {
$request->session()->invalidate();
$request->session()->regenerateToken();
}
Auth::guard('web')->login($user);
if ($request->hasSession()) {
$request->session()->regenerate();
}
return response()->json([
'success' => true,
]);
}
}