fixed migration and account removal issues (#1818)

This commit is contained in:
Matt Portune 2022-02-28 13:02:33 -05:00 committed by GitHub
parent 317e7dad9a
commit 9384b3e538
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 9 deletions

View File

@ -147,8 +147,10 @@ namespace Bit.App.Pages
return;
}
var selection = await DisplayActionSheet(AppResources.Options,
AppResources.Cancel, null, AppResources.GetPasswordHint, AppResources.RemoveAccount);
var buttons = _email.IsEnabled ? new[] { AppResources.GetPasswordHint }
: new[] { AppResources.GetPasswordHint, AppResources.RemoveAccount };
var selection = await DisplayActionSheet(AppResources.Options,
AppResources.Cancel, null, buttons);
if (selection == AppResources.GetPasswordHint)
{

View File

@ -326,19 +326,19 @@ namespace Bit.Core.Services
return lastVersion.Value;
}
// check for original v1 migration
var envUrlsLiteDb = await GetValueAsync<EnvironmentUrlData>(Storage.LiteDb, V1Keys.EnvironmentUrlsKey);
if (envUrlsLiteDb != null)
// check for v1 state
var v1EnvUrls = await GetValueAsync<EnvironmentUrlData>(Storage.LiteDb, V1Keys.EnvironmentUrlsKey);
if (v1EnvUrls != null)
{
// environmentUrls still in LiteDB (never migrated to prefs), this is v1
return 1;
}
// check for original v2 migration
var envUrlsPrefs = await GetValueAsync<EnvironmentUrlData>(Storage.Prefs, V2Keys.EnvironmentUrlsKey);
if (envUrlsPrefs != null)
// check for v2 state
var v2UserId = await GetValueAsync<string>(Storage.LiteDb, V2Keys.Keys_UserId);
if (v2UserId != null)
{
// environmentUrls in Prefs (migrated from LiteDB), this is v2
// standalone userId still exists (never moved to Account object), this is v2
return 2;
}

View File

@ -1377,6 +1377,7 @@ namespace Bit.Core.Services
{
await CheckStateAsync();
var currentTheme = await GetThemeAsync();
var currentDisableFavicons = await GetDisableFaviconAsync();
account.Settings.EnvironmentUrls = await GetPreAuthEnvironmentUrlsAsync();
@ -1405,6 +1406,7 @@ namespace Bit.Core.Services
account.Settings.VaultTimeoutAction = VaultTimeoutAction.Lock;
}
await SetThemeAsync(currentTheme, account.Profile.UserId);
await SetDisableFaviconAsync(currentDisableFavicons, account.Profile.UserId);
state.Accounts[account.Profile.UserId] = account;
await SaveStateToStorageAsync(state);