mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-05 02:18:56 +00:00
* On iOS, resuming after the 5-minute window showed no biometric prompt — just a blocking alert whose only button logged the user out. A failure to evaluate device security was indistinguishable from a verdict that the device is not secured. Android had the same class of bug, where user-cancel codes led to logout. Outcomes are now classified three ways, so only a genuine credential rejection or a genuinely unsecured device acts destructively; cancels and indeterminate results offer a retry. SecurityManager and ManagedApp share the policy-free parts via app/utils/security/. Also fixes a resume stacking a second prompt behind an open alert, a backgroundSince bypass, and a latched flag that disabled the MDM PIN. * feedback review * gate app state * fix tests
18 lines
692 B
TypeScript
18 lines
692 B
TypeScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {toMilliseconds} from '@utils/datetime';
|
|
|
|
export const PROMPT_AUTH_AFTER = toMilliseconds({minutes: 5});
|
|
|
|
export const DEVICE_SECURED_RETRY_DELAY = 350;
|
|
|
|
// Identifies the caller in log entries, which are user-exportable.
|
|
export const AuthenticationSource = {
|
|
ManagedApp: 'ManagedApp',
|
|
SecurityManager: 'SecurityManager',
|
|
} as const;
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-redeclare -- TypeScript supports same-name type/value pairs as enum alternative
|
|
export type AuthenticationSource = typeof AuthenticationSource[keyof typeof AuthenticationSource];
|