diff options
Diffstat (limited to 'kde-plasma/plasma-workspace/files')
-rw-r--r-- | kde-plasma/plasma-workspace/files/plasma-workspace-5.25.5-fix-setpassword.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/kde-plasma/plasma-workspace/files/plasma-workspace-5.25.5-fix-setpassword.patch b/kde-plasma/plasma-workspace/files/plasma-workspace-5.25.5-fix-setpassword.patch new file mode 100644 index 000000000000..7351b8808819 --- /dev/null +++ b/kde-plasma/plasma-workspace/files/plasma-workspace-5.25.5-fix-setpassword.patch @@ -0,0 +1,39 @@ +From 84dcfc45b9a354827b9bbf6ae58902d04e8fe915 Mon Sep 17 00:00:00 2001 +From: Marco Martin <notmart@gmail.com> +Date: Wed, 28 Sep 2022 11:33:33 +0200 +Subject: [PATCH] set setInteractiveAuthorizationAllowed on SetPassword call + +is important that the setpasswod call uses interactive authorization, +otherwise will be denied, unless the user had been modified beforehand +so an authorization was already granted + +BUG:459309 +--- + kcms/users/src/user.cpp | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/kcms/users/src/user.cpp b/kcms/users/src/user.cpp +index 020ebee097..87745582c5 100644 +--- a/kcms/users/src/user.cpp ++++ b/kcms/users/src/user.cpp +@@ -217,9 +217,14 @@ void User::setPassword(const QString &password) + { + // Blocking because we need to wait for the password to be changed before we + // can ask the user about also possibly changing their KWallet password +- auto invocation = m_dbusIface->SetPassword(saltPassword(password), QString()); +- invocation.waitForFinished(); +- if (!invocation.isError()) { ++ ++ auto mc = QDBusMessage::createMethodCall(m_dbusIface->service(), m_dbusIface->path(), m_dbusIface->interface(), "SetPassword"); ++ mc.setArguments({saltPassword(password), QString()}); ++ mc.setInteractiveAuthorizationAllowed(true); ++ auto message = QDBusConnection::systemBus().call(mc); ++ ++ // Not an error or invalid message ++ if (message.type() == QDBusMessage::ReplyMessage) { + Q_EMIT passwordSuccessfullyChanged(); + } + } +-- +GitLab + |