mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-05-08 17:07:43 +02:00
Merge pull request #7454 from vector-im/andy/upgrade_security
Display upgrade verification prompt
This commit is contained in:
@@ -1560,6 +1560,11 @@ Tap the + to start adding people.";
|
||||
"key_verification_self_verify_current_session_alert_message" = "Other users may not trust it.";
|
||||
"key_verification_self_verify_current_session_alert_validate_action" = "Verify";
|
||||
|
||||
// Legacy to Rust security upgrade
|
||||
|
||||
"key_verification_self_verify_security_upgrade_alert_title" = "App updated";
|
||||
"key_verification_self_verify_security_upgrade_alert_message" = "Secure messaging has been improved with the latest update. Please re-verify your device.";
|
||||
|
||||
// Unverified sessions
|
||||
"key_verification_alert_title" = "You have unverified sessions";
|
||||
"key_verification_alert_body" = "Review to ensure your account is safe.";
|
||||
|
||||
@@ -40,7 +40,18 @@ import MatrixSDKCrypto
|
||||
RiotSettings.shared.enableCryptoSDK
|
||||
}
|
||||
|
||||
var needsVerificationUpgrade: Bool {
|
||||
get {
|
||||
return RiotSettings.shared.showVerificationUpgradeAlert
|
||||
}
|
||||
set {
|
||||
RiotSettings.shared.showVerificationUpgradeAlert = newValue
|
||||
}
|
||||
}
|
||||
|
||||
private static let FeatureName = "ios-crypto-sdk"
|
||||
private static let FeatureNameV2 = "ios-crypto-sdk-v2"
|
||||
|
||||
private let remoteFeature: RemoteFeaturesClientProtocol
|
||||
private let localFeature: PhasedRolloutFeature
|
||||
|
||||
@@ -98,6 +109,13 @@ import MatrixSDKCrypto
|
||||
}
|
||||
|
||||
private func isFeatureEnabled(userId: String) -> Bool {
|
||||
remoteFeature.isFeatureEnabled(Self.FeatureName) || localFeature.isEnabled(userId: userId)
|
||||
// This feature includes app version with a bug, and thus will not be rolled out to 100% users
|
||||
remoteFeature.isFeatureEnabled(Self.FeatureName)
|
||||
|
||||
// Second version of the remote feature with a bugfix and released eventually to 100% users
|
||||
|| remoteFeature.isFeatureEnabled(Self.FeatureNameV2)
|
||||
|
||||
// Local feature
|
||||
|| localFeature.isEnabled(userId: userId)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3027,6 +3027,14 @@ public class VectorL10n: NSObject {
|
||||
public static var keyVerificationSelfVerifyCurrentSessionAlertValidateAction: String {
|
||||
return VectorL10n.tr("Vector", "key_verification_self_verify_current_session_alert_validate_action")
|
||||
}
|
||||
/// Secure messaging has been improved with the latest update. Please re-verify your device.
|
||||
public static var keyVerificationSelfVerifySecurityUpgradeAlertMessage: String {
|
||||
return VectorL10n.tr("Vector", "key_verification_self_verify_security_upgrade_alert_message")
|
||||
}
|
||||
/// App updated
|
||||
public static var keyVerificationSelfVerifySecurityUpgradeAlertTitle: String {
|
||||
return VectorL10n.tr("Vector", "key_verification_self_verify_security_upgrade_alert_title")
|
||||
}
|
||||
/// Review
|
||||
public static var keyVerificationSelfVerifyUnverifiedSessionsAlertValidateAction: String {
|
||||
return VectorL10n.tr("Vector", "key_verification_self_verify_unverified_sessions_alert_validate_action")
|
||||
|
||||
@@ -211,6 +211,9 @@ final class RiotSettings: NSObject {
|
||||
@UserDefault(key: "hideVerifyThisSessionAlert", defaultValue: false, storage: defaults)
|
||||
var hideVerifyThisSessionAlert
|
||||
|
||||
@UserDefault(key: "showVerificationUpgradeAlert", defaultValue: false, storage: defaults)
|
||||
var showVerificationUpgradeAlert
|
||||
|
||||
@UserDefault(key: "matrixApps", defaultValue: false, storage: defaults)
|
||||
var matrixApps
|
||||
|
||||
|
||||
@@ -985,8 +985,20 @@ extension AllChatsViewController: SplitViewMasterViewControllerProtocol {
|
||||
private func presentVerifyCurrentSessionAlert(with session: MXSession) {
|
||||
MXLog.debug("[AllChatsViewController] presentVerifyCurrentSessionAlertWithSession")
|
||||
|
||||
let alert = UIAlertController(title: VectorL10n.keyVerificationSelfVerifyCurrentSessionAlertTitle,
|
||||
message: VectorL10n.keyVerificationSelfVerifyCurrentSessionAlertMessage,
|
||||
let title: String
|
||||
let message: String
|
||||
|
||||
if let feature = MXSDKOptions.sharedInstance().cryptoSDKFeature,
|
||||
feature.isEnabled && feature.needsVerificationUpgrade {
|
||||
title = VectorL10n.keyVerificationSelfVerifySecurityUpgradeAlertTitle
|
||||
message = VectorL10n.keyVerificationSelfVerifySecurityUpgradeAlertMessage
|
||||
} else {
|
||||
title = VectorL10n.keyVerificationSelfVerifyCurrentSessionAlertTitle
|
||||
message = VectorL10n.keyVerificationSelfVerifyCurrentSessionAlertMessage
|
||||
}
|
||||
|
||||
let alert = UIAlertController(title: title,
|
||||
message: message,
|
||||
preferredStyle: .alert)
|
||||
|
||||
alert.addAction(UIAlertAction(title: VectorL10n.keyVerificationSelfVerifyCurrentSessionAlertValidateAction,
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Verification: Display upgrade verification prompt
|
||||
Reference in New Issue
Block a user