diff --git a/src/encryption/DeviceVerificationFlow.h b/src/encryption/DeviceVerificationFlow.h
index 55713def..537adf31 100644
--- a/src/encryption/DeviceVerificationFlow.h
+++ b/src/encryption/DeviceVerificationFlow.h
@@ -69,6 +69,7 @@ class DeviceVerificationFlow : public QObject
Q_PROPERTY(std::vector<int> sasList READ getSasList CONSTANT)
Q_PROPERTY(bool isDeviceVerification READ isDeviceVerification CONSTANT)
Q_PROPERTY(bool isSelfVerification READ isSelfVerification CONSTANT)
+ Q_PROPERTY(bool isMultiDeviceVerification READ isMultiDeviceVerification CONSTANT)
public:
enum State
@@ -139,6 +140,7 @@ public:
return this->type == DeviceVerificationFlow::Type::ToDevice;
}
bool isSelfVerification() const;
+ bool isMultiDeviceVerification() const { return deviceIds.size() > 1; }
void callback_fn(const UserKeyCache &res, mtx::http::RequestErr err, std::string user_id);
diff --git a/src/encryption/SelfVerificationStatus.cpp b/src/encryption/SelfVerificationStatus.cpp
index d4be4442..ebb6b548 100644
--- a/src/encryption/SelfVerificationStatus.cpp
+++ b/src/encryption/SelfVerificationStatus.cpp
@@ -20,7 +20,7 @@ SelfVerificationStatus::SelfVerificationStatus(QObject *o)
{
connect(MainWindow::instance(), &MainWindow::reload, this, [this] {
connect(cache::client(),
- &Cache::selfUnverified,
+ &Cache::selfVerificationStatusChanged,
this,
&SelfVerificationStatus::invalidate,
Qt::UniqueConnection);
@@ -233,6 +233,24 @@ void
SelfVerificationStatus::verifyUnverifiedDevices()
{
nhlog::db()->info("Clicked verify unverified devices");
+ const auto this_user = http::client()->user_id().to_string();
+
+ auto keys = cache::client()->userKeys(this_user);
+ auto verif = cache::client()->verificationStatus(this_user);
+
+ if (!keys)
+ return;
+
+ std::vector<QString> devices;
+ for (const auto &[device, keys] : keys->device_keys) {
+ (void)keys;
+ if (!verif.verified_devices.count(device))
+ devices.push_back(QString::fromStdString(device));
+ }
+
+ if (!devices.empty())
+ ChatPage::instance()->timelineManager()->verificationManager()->verifyOneOfDevices(
+ QString::fromStdString(this_user), std::move(devices));
}
void
|