Ejemplo n.º 1
0
        public async Task CheckVaultTimeoutAsync()
        {
            if (_platformUtilsService.IsViewOpen())
            {
                return;
            }

            if (await ShouldTimeoutAsync())
            {
                await ExecuteTimeoutActionAsync();
            }
        }
Ejemplo n.º 2
0
        public async Task CheckVaultTimeoutAsync()
        {
            if (_platformUtilsService.IsViewOpen())
            {
                return;
            }
            var authed = await _userService.IsAuthenticatedAsync();

            if (!authed)
            {
                return;
            }
            if (await IsLockedAsync())
            {
                return;
            }
            // This only returns null
            var vaultTimeoutMinutes = _platformUtilsService.LockTimeout();

            if (vaultTimeoutMinutes == null)
            {
                vaultTimeoutMinutes = await _storageService.GetAsync <int?>(Constants.VaultTimeoutKey);
            }
            if (vaultTimeoutMinutes.GetValueOrDefault(-1) < 0)
            {
                return;
            }
            var lastActiveTime = await _storageService.GetAsync <long?>(Constants.LastActiveTimeKey);

            if (lastActiveTime == null)
            {
                return;
            }
            var diffMs         = _platformUtilsService.GetActiveTime() - lastActiveTime;
            var vaultTimeoutMs = vaultTimeoutMinutes * 60000;

            if (diffMs >= vaultTimeoutMs)
            {
                // Pivot based on saved action
                var action = await _storageService.GetAsync <string>(Constants.VaultTimeoutActionKey);

                if (action == "logOut")
                {
                    await LogOutAsync();
                }
                else
                {
                    await LockAsync(true);
                }
            }
        }
        public async Task CheckVaultTimeoutAsync()
        {
            if (_platformUtilsService.IsViewOpen())
            {
                return;
            }
            var authed = await _userService.IsAuthenticatedAsync();

            if (!authed)
            {
                return;
            }
            if (await IsLockedAsync())
            {
                return;
            }
            // This only returns null
            var vaultTimeout = _platformUtilsService.LockTimeout();

            if (vaultTimeout == null)
            {
                vaultTimeout = await _storageService.GetAsync <int?>(Constants.VaultTimeoutKey);
            }
            if (vaultTimeout.GetValueOrDefault(-1) < 0)
            {
                return;
            }
            var lastActive = await _storageService.GetAsync <DateTime?>(Constants.LastActiveKey);

            if (lastActive == null)
            {
                return;
            }
            var diff = DateTime.UtcNow - lastActive.Value;

            if (diff.TotalSeconds >= vaultTimeout.Value)
            {
                // Pivot based on saved action
                var action = await _storageService.GetAsync <string>(Constants.VaultTimeoutActionKey);

                if (action == "logOut")
                {
                    await LogOutAsync();
                }
                else
                {
                    await LockAsync(true);
                }
            }
        }
Ejemplo n.º 4
0
        public async Task CheckVaultTimeoutAsync()
        {
            if (_platformUtilsService.IsViewOpen())
            {
                return;
            }
            var authed = await _userService.IsAuthenticatedAsync();

            if (!authed)
            {
                return;
            }
            if (await IsLockedAsync())
            {
                return;
            }
            var vaultTimeoutMinutes = await GetVaultTimeout();

            if (vaultTimeoutMinutes < 0 || vaultTimeoutMinutes == null)
            {
                return;
            }
            if (vaultTimeoutMinutes == 0 && !DelayLockAndLogoutMs.HasValue)
            {
                await LockOrLogout();
            }
            var lastActiveTime = await _storageService.GetAsync <long?>(Constants.LastActiveTimeKey);

            if (lastActiveTime == null)
            {
                return;
            }
            var diffMs = _platformUtilsService.GetActiveTime() - lastActiveTime;

            if (DelayLockAndLogoutMs.HasValue && diffMs < DelayLockAndLogoutMs)
            {
                return;
            }
            var vaultTimeoutMs = vaultTimeoutMinutes * 60000;

            if (diffMs >= vaultTimeoutMs)
            {
                await LockOrLogout();
            }
        }
Ejemplo n.º 5
0
        public async Task CheckLockAsync()
        {
            if (_platformUtilsService.IsViewOpen())
            {
                return;
            }
            var authed = await _userService.IsAuthenticatedAsync();

            if (!authed)
            {
                return;
            }
            if (await IsLockedAsync())
            {
                return;
            }
            var lockOption = _platformUtilsService.LockTimeout();

            if (lockOption == null)
            {
                lockOption = await _storageService.GetAsync <int?>(Constants.LockOptionKey);
            }
            if (lockOption.GetValueOrDefault(-1) < 0)
            {
                return;
            }
            var lastActive = await _storageService.GetAsync <DateTime?>(Constants.LastActiveKey);

            if (lastActive == null)
            {
                return;
            }
            var diff = DateTime.UtcNow - lastActive.Value;

            if (diff.TotalSeconds >= lockOption.Value)
            {
                // need to lock now
                await LockAsync(true);
            }
        }