From 84dcfc45b9a354827b9bbf6ae58902d04e8fe915 Mon Sep 17 00:00:00 2001 From: Marco Martin 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