ios: disable self-destruct on LA mode change to "system", create new profile with past timestamp (#2416)

This commit is contained in:
Evgeny Poberezkin
2023-05-10 09:06:18 +02:00
committed by GitHub
parent 63f344bde6
commit df4e954f8a
4 changed files with 14 additions and 9 deletions

View File

@@ -125,8 +125,8 @@ func apiGetActiveUser() throws -> User? {
}
}
func apiCreateActiveUser(_ p: Profile?) throws -> User {
let r = chatSendCmdSync(.createActiveUser(profile: p))
func apiCreateActiveUser(_ p: Profile?, sameServers: Bool = false, pastTimestamp: Bool = false) throws -> User {
let r = chatSendCmdSync(.createActiveUser(profile: p, sameServers: sameServers, pastTimestamp: pastTimestamp))
if case let .activeUser(user) = r { return user }
throw r
}

View File

@@ -58,7 +58,7 @@ struct LocalAuthView: View {
if let displayName = displayName, displayName != "" {
profile = Profile(displayName: displayName, fullName: "")
}
m.currentUser = try apiCreateActiveUser(profile)
m.currentUser = try apiCreateActiveUser(profile, pastTimestamp: true)
onboardingStageDefault.set(.onboardingComplete)
m.onboardingStage = .onboardingComplete
try startChat()

View File

@@ -338,6 +338,7 @@ struct SimplexLockView: View {
switch laResult {
case .success:
_ = kcAppPassword.remove()
resetSelfDestruct()
laAlert = .laTurnedOnAlert
case .failed, .unavailable:
currentLAMode = .passcode

View File

@@ -14,7 +14,7 @@ let jsonEncoder = getJSONEncoder()
public enum ChatCommand {
case showActiveUser
case createActiveUser(profile: Profile?)
case createActiveUser(profile: Profile?, sameServers: Bool, pastTimestamp: Bool)
case listUsers
case apiSetActiveUser(userId: Int64, viewPwd: String?)
case apiHideUser(userId: Int64, viewPwd: String)
@@ -111,11 +111,9 @@ public enum ChatCommand {
get {
switch self {
case .showActiveUser: return "/u"
case let .createActiveUser(profile):
if let profile = profile {
return "/create user \(profile.displayName) \(profile.fullName)"
}
return "/create user"
case let .createActiveUser(profile, sameServers, pastTimestamp):
let user = NewUser(profile: profile, sameServers: sameServers, pastTimestamp: pastTimestamp)
return "/_create user \(encodeJSON(user))"
case .listUsers: return "/users"
case let .apiSetActiveUser(userId, viewPwd): return "/_user \(userId)\(maybePwd(viewPwd))"
case let .apiHideUser(userId, viewPwd): return "/_hide user \(userId) \(encodeJSON(viewPwd))"
@@ -735,6 +733,12 @@ public enum ChatResponse: Decodable, Error {
}
}
struct NewUser: Encodable {
var profile: Profile?
var sameServers: Bool
var pastTimestamp: Bool
}
public enum ChatPagination {
case last(count: Int)
case after(chatItemId: Int64, count: Int)