mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-21 09:02:44 +02:00
Privacy: IS Settings: Disconnect from the IS
This commit is contained in:
@@ -210,8 +210,21 @@ final class SettingsIdentityServerViewController: UIViewController {
|
||||
continueButtonTitle: VectorL10n.continue,
|
||||
cancelButtonTitle: VectorL10n.cancel,
|
||||
onContinue: onContinue)
|
||||
}
|
||||
|
||||
case .disconnectActionAlert(.stillSharing3Pids(let oldHost)):
|
||||
self.showAlert(title: VectorL10n.identityServerSettingsAlertDisconnectTitle,
|
||||
message: VectorL10n.identityServerSettingsAlertDisconnectStillSharing3pid(oldHost.hostname()),
|
||||
continueButtonTitle: VectorL10n.identityServerSettingsAlertDisconnectStillSharing3pidButton,
|
||||
cancelButtonTitle: VectorL10n.cancel,
|
||||
onContinue: onContinue)
|
||||
|
||||
case .disconnectActionAlert(.doubleConfirmation(let oldHost)):
|
||||
self.showAlert(title: VectorL10n.identityServerSettingsAlertDisconnectTitle,
|
||||
message: VectorL10n.identityServerSettingsAlertDisconnect(oldHost.hostname()),
|
||||
continueButtonTitle: VectorL10n.identityServerSettingsAlertDisconnectButton,
|
||||
cancelButtonTitle: VectorL10n.cancel,
|
||||
onContinue: onContinue)
|
||||
}
|
||||
}
|
||||
|
||||
private func render(error: Error) {
|
||||
@@ -276,6 +289,7 @@ final class SettingsIdentityServerViewController: UIViewController {
|
||||
}
|
||||
|
||||
@IBAction private func disconnectButtonAction(_ sender: Any) {
|
||||
self.viewModel.process(viewAction: .disconnect)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -77,7 +77,6 @@ final class SettingsIdentityServerViewModel: SettingsIdentityServerViewModelType
|
||||
}
|
||||
|
||||
private func addIdentityServer(_ newIdentityServer: String) {
|
||||
|
||||
self.update(viewState: .loading)
|
||||
|
||||
self.checkIdentityServerValidity(identityServer: newIdentityServer) { (identityServerValidityResponse) in
|
||||
@@ -115,10 +114,39 @@ final class SettingsIdentityServerViewModel: SettingsIdentityServerViewModelType
|
||||
}
|
||||
|
||||
private func disconnect() {
|
||||
|
||||
guard let identityServer = self.identityServer else {
|
||||
return
|
||||
}
|
||||
|
||||
self.update(viewState: .loading)
|
||||
|
||||
self.checkExistingDataOnIdentityServer { (response) in
|
||||
switch response {
|
||||
case .success(let existingData):
|
||||
if existingData {
|
||||
self.update(viewState: .alert(alert: SettingsIdentityServerAlert.disconnectActionAlert(.stillSharing3Pids(oldHost: identityServer)), onContinue: {
|
||||
self.disconnect2()
|
||||
}))
|
||||
} else {
|
||||
self.update(viewState: .alert(alert: SettingsIdentityServerAlert.disconnectActionAlert(.doubleConfirmation(oldHost: identityServer)), onContinue: {
|
||||
self.disconnect2()
|
||||
}))
|
||||
}
|
||||
case .failure(let error):
|
||||
self.update(viewState: .error(error))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func disconnect2() {
|
||||
self.update(viewState: .loading)
|
||||
|
||||
// TODO: Make a /account/logout request
|
||||
|
||||
self.updateAccountDataAndRefreshViewState(with: nil)
|
||||
}
|
||||
|
||||
private func updateAccountDataAndRefreshViewState(with identityServer: String) {
|
||||
private func updateAccountDataAndRefreshViewState(with identityServer: String?) {
|
||||
// TODO: We should get a token in intermediate step
|
||||
self.session.setIdentityServer(identityServer, andAccessToken: nil)
|
||||
|
||||
|
||||
@@ -33,6 +33,9 @@ enum SettingsIdentityServerDisplayMode {
|
||||
|
||||
enum SettingsIdentityServerAlert {
|
||||
case addActionAlert(AddActionAlert)
|
||||
//case changeActionAlert(ChangeActionAlert)
|
||||
case disconnectActionAlert(DisconnectActionAlert)
|
||||
|
||||
enum AddActionAlert {
|
||||
case noTerms(newHost: String)
|
||||
}
|
||||
@@ -42,8 +45,9 @@ enum SettingsIdentityServerAlert {
|
||||
// case doubleConfirmation(oldHost: String, newHost: String)
|
||||
// case noTerms(newHost: String)
|
||||
// }
|
||||
// enum DisconnectActionAlert {
|
||||
// case stillSharing3Pids(oldHost: String)
|
||||
// case doubleConfirmation(oldHost: String)
|
||||
// }
|
||||
|
||||
enum DisconnectActionAlert {
|
||||
case stillSharing3Pids(oldHost: String)
|
||||
case doubleConfirmation(oldHost: String)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user