1
0
mirror of https://github.com/bitwarden/mobile.git synced 2024-12-26 16:57:59 +01:00

[PS-1809] Updating the account premium state when syncing the vault (#2290)

* [PS-1809] Updating the account premium state when syncing the vault

* [PS-1809] Added validation to check if HasPremiumPersonally needs to be updated

* PS-1809 Renamed SetPremiumAsync to SetPersonalPremiumAsync
This commit is contained in:
aj-rosado 2023-02-08 12:03:02 +00:00 committed by GitHub
parent 490b74dd26
commit 0e5d6e79c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 0 deletions

View File

@ -31,6 +31,7 @@ namespace Bit.Core.Abstractions
Task<bool> GetBiometricLockedAsync(string userId = null);
Task SetBiometricLockedAsync(bool value, string userId = null);
Task<bool> CanAccessPremiumAsync(string userId = null);
Task SetPersonalPremiumAsync(bool value, string userId = null);
Task<string> GetProtectedPinAsync(string userId = null);
Task SetProtectedPinAsync(string value, string userId = null);
Task<string> GetPinProtectedAsync(string userId = null);

View File

@ -291,6 +291,20 @@ namespace Bit.Core.Services
return organizations?.Any(o => o.UsersGetPremium && o.Enabled) ?? false;
}
public async Task SetPersonalPremiumAsync(bool value, string userId = null)
{
var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId },
await GetDefaultStorageOptionsAsync());
var account = await GetAccountAsync(reconciledOptions);
if (account?.Profile == null || account.Profile.HasPremiumPersonally.GetValueOrDefault() == value)
{
return;
}
account.Profile.HasPremiumPersonally = value;
await SaveAccountAsync(account, reconciledOptions);
}
public async Task<string> GetProtectedPinAsync(string userId = null)
{
var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId },

View File

@ -335,6 +335,7 @@ namespace Bit.Core.Services
await _organizationService.ReplaceAsync(organizations);
await _stateService.SetEmailVerifiedAsync(response.EmailVerified);
await _stateService.SetNameAsync(response.Name);
await _stateService.SetPersonalPremiumAsync(response.Premium);
await _stateService.SetAvatarColorAsync(response.AvatarColor);
await _keyConnectorService.SetUsesKeyConnector(response.UsesKeyConnector);
}