all(), [ 'login' => 'required', 'password' => 'required', 'remember' => 'boolean' ]); if ($validator->fails()) { return response()->json([ 'success' => false, 'errors' => $validator->errors() ], 422); } $credentials = $request->only('login', 'password'); if (!Auth::attempt($credentials, $request->remember)) { return response()->json([ 'success' => false, 'message' => 'Неверный login или пароль' ], 401); } $user = User::where('login', $request->login)->first(); if (!$user->is_active) { Auth::logout(); return response()->json([ 'success' => false, 'message' => 'Учетная запись отключена' ], 403); } $request->session()->regenerate(); $deviceName = 'web-' . ($request->header('User-Agent') ?: 'browser'); $token = $user->createToken($deviceName)->plainTextToken; $request->session()->put('token', $token); return Inertia::location(route('start')); } public function changeRole(Request $request) { $user = Auth::user(); if (!$user) return null; $data = $request->validate([ 'role_id' => 'required|integer|exists:roles,role_id' ]); $sessionKey = 'user_' . $user->id . '_current_role'; $user->current_role_id = $data['role_id']; $user->save(); return redirect()->route('start')->setStatusCode(302); } }