johu        14/07/24 18:20:33

  Added:                kdepasswd-4.13.3-use-accountsservice.patch
  Log:
  Revision bump adds backported Plasma 5 upstream patch by Michael Palimaka 
<kensing...@gentoo.org>, which uses sys-apps/accountsservice at runtime, fixes 
bug #380899.
  
  (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key 
F3CFD2BD)

Revision  Changes    Path
1.1                  
kde-base/kdepasswd/files/kdepasswd-4.13.3-use-accountsservice.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/kde-base/kdepasswd/files/kdepasswd-4.13.3-use-accountsservice.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/kde-base/kdepasswd/files/kdepasswd-4.13.3-use-accountsservice.patch?rev=1.1&content-type=text/plain

Index: kdepasswd-4.13.3-use-accountsservice.patch
===================================================================
Use accountsservice instead of calling chfn directly.

This avoids a potential error or crash when changing user account information.
Backported 77275f50241eb2f4e38051152074c379fa96fe84 and 
23bbe79912ec21ded8fdfc595935f48a6d2298ea from Plasma 5.

Gentoo bug #380899
KDE bug #156396

--- a/kdepasswd/kcm/CMakeLists.txt
+++ b/kdepasswd/kcm/CMakeLists.txt
@@ -1,7 +1,6 @@
 add_subdirectory(pics)
 
 set(kcm_useraccount_PART_SRCS
-    chfnprocess.cpp
     main.cpp
     chfacedlg.cpp)
 
--- a/kdepasswd/kcm/main.cpp
+++ b/kdepasswd/kcm/main.cpp
@@ -49,7 +49,6 @@
 
 #include "settings.h"
 #include "pass.h"
-#include "chfnprocess.h"
 #include <KPluginFactory>
 #include <KPluginLoader>
 
@@ -181,36 +180,27 @@ void KCMUserAccount::save()
        /* Save realname to /etc/passwd */
        if ( _mw->leRealname->isModified() )
        {
-               KPasswordDialog dlg( _mw );
-               dlg.setPrompt(i18n("Please enter your password in order to save 
your settings:"));
-               if ( !dlg.exec() )
-               {
-                       KMessageBox::sorry( this, i18n("You must enter "
-                               "your password in order to change your 
information."));
-                       return;
-               }
-
-               ChfnProcess *proc = new ChfnProcess();
-               int ret = proc->exec(dlg.password().toLocal8Bit() , 
_mw->leRealname->text().toLocal8Bit() );
-               if ( ret )
-               {
-                       if ( ret == ChfnProcess::PasswordError )
-                               KMessageBox::sorry( this, i18n("You must enter 
a correct password."));
-
-                       else
-                       {
-                               KMessageBox::sorry( this, i18n("An error 
occurred and your name has "
-                                                       "probably not been 
changed. The error "
-                                                       "message was:\n%1", 
QString::fromLocal8Bit(proc->error())));
-                               kDebug() << "ChfnProcess->exec() failed. Error 
code: " << ret
-                                       << "\nOutput:" << proc->error() << endl;
-                       }
-
-                       delete proc;
-                       return;
-               }
-
-               delete proc;
+        // save icon file also with accountsservice
+        QDBusInterface ainterface("org.freedesktop.Accounts",
+            "/org/freedesktop/Accounts",
+            "org.freedesktop.Accounts",
+            QDBusConnection::systemBus());
+        QDBusReply<QDBusObjectPath> reply = ainterface.call("FindUserById", 
qlonglong(_ku->uid()));
+        if (reply.isValid() && !reply.error().isValid()) {
+            QDBusInterface uinterface("org.freedesktop.Accounts",
+                reply.value().path(),
+                "org.freedesktop.Accounts.User",
+                QDBusConnection::systemBus(),
+                this);
+
+            QString name = _mw->leRealname->text();
+            QDBusReply<void> ureply = uinterface.call("SetRealName", name);
+            if (!ureply.isValid() || ureply.error().isValid()) {
+                kDebug() << ureply.error().message();
+                KMessageBox::error( this, i18n("There was an error setting the 
name: %1" ,
+                    name) );
+            }
+        }
        }
 #endif
 
@@ -243,10 +233,12 @@ void KCMUserAccount::save()
                }
        }
        else { // delete existing image
-               if ( !KIO::NetAccess::del(KCFGUserAccount::faceFile(), this) ) {
-                       KMessageBox::error( this, i18n("There was an error 
deleting the image: %1" ,
-                               KCFGUserAccount::faceFile()) );
-               }
+        if (QFile::exists(KCFGUserAccount::faceFile())) {
+            if ( !KIO::NetAccess::del(KCFGUserAccount::faceFile(), this) ) {
+                KMessageBox::error( this, i18n("There was an error deleting 
the image: %1" ,
+                    KCFGUserAccount::faceFile()) );
+            }
+        }
        }
 
        /* Save KDE's homebrewn settings */



Reply via email to