Revert "Merge pull request #7430 from vector-im/andy/user_trust"

This reverts commit 7f5d3b46eb02a7801d4a7c781762eea3d16ee0e6, reversing
changes made to 5a3adde8f70daec795ac1bee17c5159a155c6106.
This commit is contained in:
Andy Uhnak
2023-03-22 15:57:25 +00:00
parent dc2b7b7c11
commit ef31ad428b
16 changed files with 62 additions and 264 deletions
@@ -1,49 +0,0 @@
//
// Copyright 2023 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
import Foundation
/// Object responsible for calculating user and room trust level
@objc class EncryptionTrustLevel: NSObject {
/// Calculate trust level for a single user given their cross-signing info
@objc func userTrustLevel(
crossSigning: MXCrossSigningInfo?,
devicesTrust: MXTrustSummary
) -> UserEncryptionTrustLevel {
// If we could cross-sign but we haven't, the user is simply not verified
if let crossSigning, !crossSigning.isVerified {
return .notVerified
// If we cannot cross-sign the user (legacy behaviour) and have not signed
// any devices manually, the user is not verified
} else if crossSigning == nil && devicesTrust.trustedCount == 0 {
return .notVerified
}
// In all other cases we check devices for trust level
return devicesTrust.areAllTrusted ? .trusted : .warning
}
/// Calculate trust level for a room given trust level of users and their devices
@objc func roomTrustLevel(summary: MXUsersTrustLevelSummary) -> RoomEncryptionTrustLevel {
guard summary.usersTrust.totalCount > 0 && summary.usersTrust.areAllTrusted else {
return .normal
}
return summary.devicesTrust.areAllTrusted ? .trusted : .warning
}
}