mirror of
https://github.com/bitwarden/mobile
synced 2025-12-15 07:43:37 +00: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:
@@ -31,6 +31,7 @@ namespace Bit.Core.Abstractions
|
|||||||
Task<bool> GetBiometricLockedAsync(string userId = null);
|
Task<bool> GetBiometricLockedAsync(string userId = null);
|
||||||
Task SetBiometricLockedAsync(bool value, string userId = null);
|
Task SetBiometricLockedAsync(bool value, string userId = null);
|
||||||
Task<bool> CanAccessPremiumAsync(string userId = null);
|
Task<bool> CanAccessPremiumAsync(string userId = null);
|
||||||
|
Task SetPersonalPremiumAsync(bool value, string userId = null);
|
||||||
Task<string> GetProtectedPinAsync(string userId = null);
|
Task<string> GetProtectedPinAsync(string userId = null);
|
||||||
Task SetProtectedPinAsync(string value, string userId = null);
|
Task SetProtectedPinAsync(string value, string userId = null);
|
||||||
Task<string> GetPinProtectedAsync(string userId = null);
|
Task<string> GetPinProtectedAsync(string userId = null);
|
||||||
|
|||||||
@@ -291,6 +291,20 @@ namespace Bit.Core.Services
|
|||||||
return organizations?.Any(o => o.UsersGetPremium && o.Enabled) ?? false;
|
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)
|
public async Task<string> GetProtectedPinAsync(string userId = null)
|
||||||
{
|
{
|
||||||
var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId },
|
var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId },
|
||||||
|
|||||||
@@ -335,6 +335,7 @@ namespace Bit.Core.Services
|
|||||||
await _organizationService.ReplaceAsync(organizations);
|
await _organizationService.ReplaceAsync(organizations);
|
||||||
await _stateService.SetEmailVerifiedAsync(response.EmailVerified);
|
await _stateService.SetEmailVerifiedAsync(response.EmailVerified);
|
||||||
await _stateService.SetNameAsync(response.Name);
|
await _stateService.SetNameAsync(response.Name);
|
||||||
|
await _stateService.SetPersonalPremiumAsync(response.Premium);
|
||||||
await _stateService.SetAvatarColorAsync(response.AvatarColor);
|
await _stateService.SetAvatarColorAsync(response.AvatarColor);
|
||||||
await _keyConnectorService.SetUsesKeyConnector(response.UsesKeyConnector);
|
await _keyConnectorService.SetUsesKeyConnector(response.UsesKeyConnector);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user