chamge position login and improved

This commit is contained in:
2025-07-02 17:31:30 +03:30
parent 43935daff3
commit 4997f8a590

View File

@@ -8,6 +8,8 @@ use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class AuthController extends Controller
{
@@ -15,7 +17,28 @@ class AuthController extends Controller
public function login(LoginRequest $request): JsonResponse
{
if ($this->attemptLogin($request))
$inputTelephoneId = $request->input('telephone_id');
$user = User::where('username', $request->username)->first();
if ($user->is_online && !empty($user->telephone_id)) {
return $this->errorResponse(__('messages.user_already_online'), 409); // 409 Conflict
}
if (!empty($inputTelephoneId)) {
$previousUserOnThisSystem = User::where('telephone_id', $inputTelephoneId)
->where('is_online', false)
->first();
if ($previousUserOnThisSystem) {
DB::table('sessions')
->where('user_id', $previousUserOnThisSystem->id)
->delete();
}
}
if ($this->attemptLogin($request))
{
$request->session()->regenerate();
$this->updateUserInfo($request);
@@ -35,9 +58,13 @@ class AuthController extends Controller
Auth::user()->update([
'last_login' => now(),
'telephone_id' => $request->telephone_id,
'is_online' => true
]);
DB::table('sessions')
->where('user_id', Auth::id())
->where('id', '!=', Session::getId())
->delete();
}
public function logout(Request $request): JsonResponse
{
Auth::user()->update([