chamge position login and improved
This commit is contained in:
@@ -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([
|
||||
|
||||
Reference in New Issue
Block a user