Ssh: Get confirmation from user for overwriting an existing key.

Change-Id: I3d74423ef647fd59d303517b0a0e987b24973095
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
This commit is contained in:
Christian Kandeler
2013-03-27 16:42:08 +01:00
parent 6c12a06029
commit a167286b3f
2 changed files with 14 additions and 0 deletions

View File

@@ -69,6 +69,9 @@ void SshKeyCreationDialog::keyTypeChanged()
void SshKeyCreationDialog::generateKeys() void SshKeyCreationDialog::generateKeys()
{ {
if (userForbidsOverwriting())
return;
const SshKeyGenerator::KeyType keyType = m_ui->rsa->isChecked() const SshKeyGenerator::KeyType keyType = m_ui->rsa->isChecked()
? SshKeyGenerator::Rsa ? SshKeyGenerator::Rsa
: SshKeyGenerator::Dsa; : SshKeyGenerator::Dsa;
@@ -130,6 +133,16 @@ void SshKeyCreationDialog::saveKeys()
accept(); accept();
} }
bool SshKeyCreationDialog::userForbidsOverwriting()
{
if (!QFileInfo(privateKeyFilePath()).exists() && !QFileInfo(publicKeyFilePath()).exists())
return false;
const QMessageBox::StandardButton reply = QMessageBox::question(this, tr("File Exists"),
tr("There already is a file of that name. Do you want to overwrite it?"),
QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
return reply != QMessageBox::Yes;
}
QString SshKeyCreationDialog::privateKeyFilePath() const QString SshKeyCreationDialog::privateKeyFilePath() const
{ {
return m_ui->privateKeyFileValueLabel->text(); return m_ui->privateKeyFileValueLabel->text();

View File

@@ -57,6 +57,7 @@ private slots:
private: private:
void setPrivateKeyFile(const QString &filePath); void setPrivateKeyFile(const QString &filePath);
void saveKeys(); void saveKeys();
bool userForbidsOverwriting();
private: private:
SshKeyGenerator *m_keyGenerator; SshKeyGenerator *m_keyGenerator;