clear cache flag on disk

This commit is contained in:
Kyle Spearrin 2018-06-08 09:13:42 -04:00
parent b5277e89d5
commit a607a7f3ef
4 changed files with 28 additions and 1 deletions

View file

@ -17,5 +17,6 @@ namespace Bit.App.Abstractions
string ApiUrl { get; set; } string ApiUrl { get; set; }
string IdentityUrl { get; set; } string IdentityUrl { get; set; }
string IconsUrl { get; set; } string IconsUrl { get; set; }
bool ClearCiphersCache { get; set; }
} }
} }

View file

@ -46,6 +46,7 @@
public const string IdentityUrl = "other:identityUrl"; public const string IdentityUrl = "other:identityUrl";
public const string IconsUrl = "other:iconsUrl"; public const string IconsUrl = "other:iconsUrl";
public const string FailedPinAttempts = "other:failedPinAttempts"; public const string FailedPinAttempts = "other:failedPinAttempts";
public const string ClearCiphersCache = "other:clearCiphersCache";
public const int SelectFileRequestCode = 42; public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43; public const int SelectFilePermissionRequestCode = 43;

View file

@ -196,5 +196,17 @@ namespace Bit.App.Services
_settings.AddOrUpdateValue(Constants.IconsUrl, value); _settings.AddOrUpdateValue(Constants.IconsUrl, value);
} }
} }
public bool ClearCiphersCache
{
get
{
return _settings.GetValueOrDefault(Constants.ClearCiphersCache, false);
}
set
{
_settings.AddOrUpdateValue(Constants.ClearCiphersCache, value);
}
}
} }
} }

View file

@ -25,6 +25,7 @@ namespace Bit.App.Services
private readonly ICipherApiRepository _cipherApiRepository; private readonly ICipherApiRepository _cipherApiRepository;
private readonly ISettingsService _settingsService; private readonly ISettingsService _settingsService;
private readonly ICryptoService _cryptoService; private readonly ICryptoService _cryptoService;
private readonly IAppSettingsService _appSettingsService;
public CipherService( public CipherService(
ICipherRepository cipherRepository, ICipherRepository cipherRepository,
@ -33,7 +34,8 @@ namespace Bit.App.Services
IAuthService authService, IAuthService authService,
ICipherApiRepository cipherApiRepository, ICipherApiRepository cipherApiRepository,
ISettingsService settingsService, ISettingsService settingsService,
ICryptoService cryptoService) ICryptoService cryptoService,
IAppSettingsService appSettingsService)
{ {
_cipherRepository = cipherRepository; _cipherRepository = cipherRepository;
_cipherCollectionRepository = cipherCollectionRepository; _cipherCollectionRepository = cipherCollectionRepository;
@ -42,6 +44,7 @@ namespace Bit.App.Services
_cipherApiRepository = cipherApiRepository; _cipherApiRepository = cipherApiRepository;
_settingsService = settingsService; _settingsService = settingsService;
_cryptoService = cryptoService; _cryptoService = cryptoService;
_appSettingsService = appSettingsService;
} }
public async Task<Cipher> GetByIdAsync(string id) public async Task<Cipher> GetByIdAsync(string id)
@ -59,6 +62,12 @@ namespace Bit.App.Services
public async Task<IEnumerable<Cipher>> GetAllAsync() public async Task<IEnumerable<Cipher>> GetAllAsync()
{ {
if(_appSettingsService.ClearCiphersCache)
{
CachedCiphers = null;
_appSettingsService.ClearCiphersCache = false;
}
if(CachedCiphers != null) if(CachedCiphers != null)
{ {
return CachedCiphers; return CachedCiphers;
@ -261,6 +270,7 @@ namespace Bit.App.Services
{ {
await _cipherRepository.UpsertAsync(cipher); await _cipherRepository.UpsertAsync(cipher);
CachedCiphers = null; CachedCiphers = null;
_appSettingsService.ClearCiphersCache = true;
} }
public async Task<ApiResult> DeleteAsync(string id) public async Task<ApiResult> DeleteAsync(string id)
@ -283,6 +293,7 @@ namespace Bit.App.Services
{ {
await _cipherRepository.DeleteAsync(id); await _cipherRepository.DeleteAsync(id);
CachedCiphers = null; CachedCiphers = null;
_appSettingsService.ClearCiphersCache = true;
} }
public async Task<byte[]> DownloadAndDecryptAttachmentAsync(string url, string orgId = null) public async Task<byte[]> DownloadAndDecryptAttachmentAsync(string url, string orgId = null)
@ -348,6 +359,7 @@ namespace Bit.App.Services
await _attachmentRepository.UpsertAsync(attachment); await _attachmentRepository.UpsertAsync(attachment);
} }
CachedCiphers = null; CachedCiphers = null;
_appSettingsService.ClearCiphersCache = true;
} }
public async Task<ApiResult> DeleteAttachmentAsync(Cipher cipher, string attachmentId) public async Task<ApiResult> DeleteAttachmentAsync(Cipher cipher, string attachmentId)
@ -370,6 +382,7 @@ namespace Bit.App.Services
{ {
await _attachmentRepository.DeleteAsync(attachmentId); await _attachmentRepository.DeleteAsync(attachmentId);
CachedCiphers = null; CachedCiphers = null;
_appSettingsService.ClearCiphersCache = true;
} }
private Tuple<string, string[]> InfoFromMobileAppUri(string mobileAppUriString) private Tuple<string, string[]> InfoFromMobileAppUri(string mobileAppUriString)