1 /*
2    SPDX-FileCopyrightText: 2012-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #include "importwizardsavepasswordjob.h"
8 #include "libimportwizard_debug.h"
9 using namespace QKeychain;
10 
ImportWizardSavePasswordJob(QObject * parent)11 ImportWizardSavePasswordJob::ImportWizardSavePasswordJob(QObject *parent)
12     : QObject(parent)
13 {
14 }
15 
~ImportWizardSavePasswordJob()16 ImportWizardSavePasswordJob::~ImportWizardSavePasswordJob()
17 {
18 }
19 
canStart() const20 bool ImportWizardSavePasswordJob::canStart() const
21 {
22     return !mName.isEmpty() && !mPassword.isEmpty() && !mKey.isEmpty();
23 }
24 
start()25 void ImportWizardSavePasswordJob::start()
26 {
27     if (!canStart()) {
28         if (mName.isEmpty()) {
29             qCWarning(LIBIMPORTWIZARD_LOG) << "Error missing mName";
30         }
31         if (mKey.isEmpty()) {
32             qCWarning(LIBIMPORTWIZARD_LOG) << "Error missing mKey";
33         }
34         if (mPassword.isEmpty()) {
35             qCWarning(LIBIMPORTWIZARD_LOG) << "Error missing mName";
36         }
37         deleteLater();
38         return;
39     }
40     auto writeJob = new WritePasswordJob(mName, this);
41     connect(writeJob, &Job::finished, this, &ImportWizardSavePasswordJob::slotPasswordWritten);
42     writeJob->setKey(mKey);
43     writeJob->setTextData(mPassword);
44     writeJob->start();
45 }
46 
slotPasswordWritten(QKeychain::Job * baseJob)47 void ImportWizardSavePasswordJob::slotPasswordWritten(QKeychain::Job *baseJob)
48 {
49     if (baseJob->error()) {
50         qCWarning(LIBIMPORTWIZARD_LOG) << "Error writing password using QKeychain:" << baseJob->errorString();
51     }
52     deleteLater();
53 }
54 
name() const55 QString ImportWizardSavePasswordJob::name() const
56 {
57     return mName;
58 }
59 
setName(const QString & name)60 void ImportWizardSavePasswordJob::setName(const QString &name)
61 {
62     mName = name;
63 }
64 
key() const65 QString ImportWizardSavePasswordJob::key() const
66 {
67     return mKey;
68 }
69 
setKey(const QString & key)70 void ImportWizardSavePasswordJob::setKey(const QString &key)
71 {
72     mKey = key;
73 }
74 
password() const75 QString ImportWizardSavePasswordJob::password() const
76 {
77     return mPassword;
78 }
79 
setPassword(const QString & password)80 void ImportWizardSavePasswordJob::setPassword(const QString &password)
81 {
82     mPassword = password;
83 }
84