Implement session-owned first delivery and password reissue scenarios
This commit is contained in:
+10
-14
@@ -12,10 +12,7 @@ use crate::persistence::{BackupComplete, PersistedState, PersistenceError, Saved
|
||||
use crate::vault::VaultBundle;
|
||||
use crate::wireguard::ConfigDocument;
|
||||
|
||||
use super::{
|
||||
AppError, Application, historical_apply_from_saved, promote_matching_issue_map,
|
||||
retain_matching_issue_map,
|
||||
};
|
||||
use super::{AppError, Application, historical_apply_from_saved};
|
||||
|
||||
struct PreparedCommit {
|
||||
proposed: SavedBytes,
|
||||
@@ -109,9 +106,10 @@ pub(super) fn commit(
|
||||
application.saved = prepared.proposed;
|
||||
application.draft.states = prepared.states;
|
||||
application.draft.document = prepared.document;
|
||||
application.invalidate_active_issue_authorizations();
|
||||
promote_matching_issue_map(
|
||||
&mut application.initial_issues,
|
||||
application
|
||||
.first_delivery
|
||||
.invalidate_active_authorizations();
|
||||
application.first_delivery.promote_matching(
|
||||
&application.draft.document,
|
||||
application.draft.vault.as_ref(),
|
||||
);
|
||||
@@ -131,15 +129,13 @@ fn retain_first_issue_rights_after_failed_install(application: &mut Application)
|
||||
.and_then(|bytes| std::str::from_utf8(bytes).ok())
|
||||
.and_then(|text| VaultBundle::from_toml(text).ok());
|
||||
if let Some(document) = document {
|
||||
retain_matching_issue_map(
|
||||
&mut application.initial_issues,
|
||||
&document,
|
||||
vault.as_ref(),
|
||||
);
|
||||
application
|
||||
.first_delivery
|
||||
.retain_matching(&document, vault.as_ref());
|
||||
} else {
|
||||
application.initial_issues.clear();
|
||||
application.first_delivery.clear();
|
||||
}
|
||||
}
|
||||
Err(_) => application.initial_issues.clear(),
|
||||
Err(_) => application.first_delivery.clear(),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user