summaryrefslogtreecommitdiff
path: root/kde-plasma/plasma-workspace/files/plasma-workspace-5.25.5-fix-setpassword.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/plasma-workspace/files/plasma-workspace-5.25.5-fix-setpassword.patch')
-rw-r--r--kde-plasma/plasma-workspace/files/plasma-workspace-5.25.5-fix-setpassword.patch39
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
+