mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-28 08:49:42 -05:00
Merge pull request #1386 from keepassxreboot/feature/fix-browser-quirks
Fix browser integration quirks
This commit is contained in:
commit
243edda7f2
@ -31,6 +31,7 @@
|
||||
#include "core/Metadata.h"
|
||||
#include "core/Uuid.h"
|
||||
#include "core/PasswordGenerator.h"
|
||||
#include "gui/MainWindow.h"
|
||||
|
||||
|
||||
// de887cc3-0363-43b8-974b-5911b8816224
|
||||
@ -60,11 +61,8 @@ bool BrowserService::isDatabaseOpened() const
|
||||
return false;
|
||||
}
|
||||
|
||||
if (dbWidget->currentMode() == DatabaseWidget::ViewMode || dbWidget->currentMode() == DatabaseWidget::EditMode) {
|
||||
return true;
|
||||
}
|
||||
return dbWidget->currentMode() == DatabaseWidget::ViewMode || dbWidget->currentMode() == DatabaseWidget::EditMode;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool BrowserService::openDatabase()
|
||||
@ -82,7 +80,8 @@ bool BrowserService::openDatabase()
|
||||
return true;
|
||||
}
|
||||
|
||||
m_dbTabWidget->activateWindow();
|
||||
KEEPASSXC_MAIN_WINDOW->bringToFront();
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -174,29 +173,38 @@ QString BrowserService::storeKey(const QString& key)
|
||||
|
||||
Entry* config = getConfigEntry(true);
|
||||
if (!config) {
|
||||
return QString();
|
||||
return {};
|
||||
}
|
||||
|
||||
bool contains = false;
|
||||
bool contains;
|
||||
QMessageBox::StandardButton dialogResult = QMessageBox::No;
|
||||
|
||||
do {
|
||||
bool ok = false;
|
||||
id = QInputDialog::getText(0, tr("KeePassXC: New key association request"),
|
||||
tr("You have received an association "
|
||||
"request for the above key.\n"
|
||||
"If you would like to allow it access "
|
||||
"to your KeePassXC database,\n"
|
||||
"give it a unique name to identify and accept it."),
|
||||
QLineEdit::Normal, QString(), &ok);
|
||||
if (!ok || id.isEmpty()) {
|
||||
return QString();
|
||||
QInputDialog keyDialog;
|
||||
keyDialog.setWindowTitle(tr("KeePassXC: New key association request"));
|
||||
keyDialog.setLabelText(tr("You have received an association request for the above key.\n\n"
|
||||
"If you would like to allow it access to your KeePassXC database,\n"
|
||||
"give it a unique name to identify and accept it."));
|
||||
keyDialog.setOkButtonText(tr("Save and allow access"));
|
||||
keyDialog.show();
|
||||
keyDialog.activateWindow();
|
||||
keyDialog.raise();
|
||||
auto ok = keyDialog.exec();
|
||||
|
||||
id = keyDialog.textValue();
|
||||
|
||||
if (ok != QDialog::Accepted || id.isEmpty()) {
|
||||
return {};
|
||||
}
|
||||
|
||||
contains = config->attributes()->contains(QLatin1String(ASSOCIATE_KEY_PREFIX) + id);
|
||||
dialogResult = QMessageBox::warning(0, tr("KeePassXC: Overwrite existing key?"),
|
||||
tr("A shared encryption key with the name \"%1\" already exists.\nDo you want to overwrite it?").arg(id),
|
||||
QMessageBox::Yes | QMessageBox::No);
|
||||
if (contains) {
|
||||
dialogResult = QMessageBox::warning(nullptr, tr("KeePassXC: Overwrite existing key?"),
|
||||
tr("A shared encryption key with the name \"%1\" "
|
||||
"already exists.\nDo you want to overwrite it?")
|
||||
.arg(id),
|
||||
QMessageBox::Yes | QMessageBox::No);
|
||||
}
|
||||
} while (contains && dialogResult == QMessageBox::No);
|
||||
|
||||
config->attributes()->set(QLatin1String(ASSOCIATE_KEY_PREFIX) + id, key, true);
|
||||
|
@ -28,8 +28,7 @@
|
||||
const QString HostInstaller::HOST_NAME = "org.keepassxc.keepassxc_browser";
|
||||
const QStringList HostInstaller::ALLOWED_ORIGINS = QStringList()
|
||||
<< "chrome-extension://iopaggbpplllidnfmcghoonnokmjoicf/"
|
||||
<< "chrome-extension://fhakpkpdnjecjfceboihdjpfmgajebii/"
|
||||
<< "chrome-extension://jaikbblhommnkeialomogohhdlndpfbi/";
|
||||
<< "chrome-extension://oboonakemofpalcgghocfoadofidjkkk/";
|
||||
|
||||
const QStringList HostInstaller::ALLOWED_EXTENSIONS = QStringList()
|
||||
<< "keepassxc-browser@keepassxc.org";
|
||||
|
Loading…
Reference in New Issue
Block a user