Implemented PSG-680 - Sessions overview security recommendations

- remove uppercased strings from localizables
- moved inactivity computation to the service
This commit is contained in:
Stefan Ceriu
2022-09-27 16:51:13 +03:00
committed by Stefan Ceriu
parent 6585aaf523
commit 7eee1cceab
20 changed files with 369 additions and 127 deletions
@@ -41,21 +41,23 @@ enum MockUserSessionDetailsScreenState: MockScreenState, CaseIterable {
let session: UserSessionInfo
switch self {
case .allSections:
session = UserSessionInfo(sessionId: "session",
sessionName: "iOS",
session = UserSessionInfo(id: "session",
name: "iOS",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
isCurrentSession: true)
isActive: true,
isCurrent: true)
case .sessionSectionOnly:
session = UserSessionInfo(sessionId: "session",
sessionName: "iOS",
session = UserSessionInfo(id: "session",
name: "iOS",
deviceType: .mobile,
isVerified: false,
lastSeenIP: nil,
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
isCurrentSession: false)
isActive: true,
isCurrent: false)
}
let viewModel = UserSessionDetailsViewModel(session: session)
@@ -28,7 +28,7 @@ class UserSessionDetailsViewModelTests: XCTestCase {
sessionItems.append(sessionIdItem(sessionId: userSessionInfo.sessionId))
var sections = [UserSessionDetailsSectionViewData]()
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader,
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader.uppercased(),
footer: VectorL10n.userSessionDetailsSessionSectionFooter,
items: sessionItems))
let expectedModel = UserSessionDetailsViewState(sections: sections)
@@ -47,7 +47,7 @@ class UserSessionDetailsViewModelTests: XCTestCase {
sessionItems.append(sessionIdItem(sessionId: userSessionInfo.sessionId))
var sections = [UserSessionDetailsSectionViewData]()
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader,
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader.uppercased(),
footer: VectorL10n.userSessionDetailsSessionSectionFooter,
items: sessionItems))
@@ -67,14 +67,14 @@ class UserSessionDetailsViewModelTests: XCTestCase {
sessionItems.append(sessionIdItem(sessionId: userSessionInfo.sessionId))
var sections = [UserSessionDetailsSectionViewData]()
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader,
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader.uppercased(),
footer: VectorL10n.userSessionDetailsSessionSectionFooter,
items: sessionItems))
var deviceSectionItems = [UserSessionDetailsSectionItemViewData]()
deviceSectionItems.append(UserSessionDetailsSectionItemViewData(title: VectorL10n.userSessionDetailsDeviceIpAddress,
value: "0.0.0.0"))
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsDeviceSectionHeader,
sections.append(UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsDeviceSectionHeader.uppercased(),
footer: nil,
items: deviceSectionItems))
@@ -45,15 +45,15 @@ class UserSessionDetailsViewModel: UserSessionDetailsViewModelType, UserSessionD
private func sessionSection(session: UserSessionInfo) -> UserSessionDetailsSectionViewData {
var sessionItems = [UserSessionDetailsSectionItemViewData]()
if let sessionName = session.sessionName {
if let sessionName = session.name {
sessionItems.append(UserSessionDetailsSectionItemViewData(title: VectorL10n.userSessionDetailsSessionName,
value: sessionName))
}
sessionItems.append(UserSessionDetailsSectionItemViewData(title: VectorL10n.keyVerificationManuallyVerifyDeviceIdTitle,
value: session.sessionId))
value: session.id))
return UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader,
return UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsSessionSectionHeader.uppercased(),
footer: VectorL10n.userSessionDetailsSessionSectionFooter,
items: sessionItems)
}
@@ -65,7 +65,7 @@ class UserSessionDetailsViewModel: UserSessionDetailsViewModelType, UserSessionD
value: lastSeenIP))
}
if deviceSectionItems.count > 0 {
return UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsDeviceSectionHeader,
return UserSessionDetailsSectionViewData(header: VectorL10n.userSessionDetailsDeviceSectionHeader.uppercased(),
footer: nil,
items: deviceSectionItems)
}