69 lines
2.4 KiB
Diff
69 lines
2.4 KiB
Diff
From: Alex Sanchez-Stern <alex@dmodel.ai>
|
|
Subject: [PATCH] Don't cancel in-progress authentication on suspend
|
|
|
|
Aborting an in-progress PAM conversation when the system suspends makes
|
|
pam_authenticate() report a failure. The greeter then displays a failed
|
|
login on resume, and authentication backends such as fingerprint can be
|
|
left unusable for the remainder of that lock-screen session.
|
|
|
|
Leave the conversation parked across suspend and resume instead. This is
|
|
the change proposed upstream in KScreenLocker merge request 340, adapted
|
|
to the Plasma 6.7.4 source shipped by Fedora 44.
|
|
---
|
|
greeter/greeterapp.cpp | 6 ------
|
|
greeter/greeterapp.h | 2 --
|
|
2 files changed, 8 deletions(-)
|
|
|
|
diff --git a/greeter/greeterapp.cpp b/greeter/greeterapp.cpp
|
|
index b1de459..08d8134 100644
|
|
--- a/greeter/greeterapp.cpp
|
|
+++ b/greeter/greeterapp.cpp
|
|
@@ -10,8 +10,6 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
|
#include "shell_integration.h"
|
|
#include "wallpaper_integration.h"
|
|
|
|
-#include "../logind.h"
|
|
-
|
|
#include <config-kscreenlocker.h>
|
|
#include <iostream>
|
|
#include <unistd.h>
|
|
@@ -133,7 +131,6 @@ UnlockApp::UnlockApp(int &argc, char **argv)
|
|
, m_graceTime(0)
|
|
, m_noLock(false)
|
|
, m_shellIntegration(new ShellIntegration(this))
|
|
- , m_logindIntegration(new LogindIntegration(this))
|
|
{
|
|
auto interactive = std::make_unique<PamAuthenticator>(QStringLiteral(KSCREENLOCKER_PAM_SERVICE), KUser().loginName());
|
|
std::vector<std::unique_ptr<PamAuthenticator>> noninteractive;
|
|
@@ -142,9 +139,6 @@ UnlockApp::UnlockApp(int &argc, char **argv)
|
|
noninteractive.push_back(
|
|
std::make_unique<PamAuthenticator>(QStringLiteral(KSCREENLOCKER_PAM_SMARTCARD_SERVICE), KUser().loginName(), PamAuthenticator::Smartcard));
|
|
m_authenticators = new PamAuthenticators(std::move(interactive), std::move(noninteractive), this);
|
|
- connect(m_logindIntegration, &LogindIntegration::prepareForSleep, m_authenticators, [this] {
|
|
- m_authenticators->cancel();
|
|
- });
|
|
initialize();
|
|
|
|
if (KWindowSystem::isPlatformX11()) {
|
|
diff --git a/greeter/greeterapp.h b/greeter/greeterapp.h
|
|
index 2362dd2..ff355de 100644
|
|
--- a/greeter/greeterapp.h
|
|
+++ b/greeter/greeterapp.h
|
|
@@ -25,7 +25,6 @@ class QuickViewSharedEngine;
|
|
}
|
|
|
|
class Authenticator;
|
|
-class LogindIntegration;
|
|
|
|
struct org_kde_ksld;
|
|
|
|
@@ -94,6 +93,5 @@ private:
|
|
|
|
KPackage::Package m_wallpaperPackage;
|
|
ShellIntegration *m_shellIntegration;
|
|
- LogindIntegration *m_logindIntegration;
|
|
};
|
|
} // namespace
|
|
--
|
|
2.51.0
|