mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-16 01:34:08 +00:00
51 lines
1.4 KiB
PHP
51 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Setup;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\User;
|
|
use App\Support\InstallWizardAuth;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class LoginController extends Controller
|
|
{
|
|
public function __invoke(Request $request): JsonResponse
|
|
{
|
|
$user = User::where('role', 'super admin')->first();
|
|
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' => $company,
|
|
]);
|
|
}
|
|
}
|