isBiometricEnabledForUser function
Verifica si un usuario específico tiene la biometría habilitada. Retorna un Map con { success, message, code, error, isEnabled }.
Implementation
Future<ApiResult> isBiometricEnabledForUser(String userId) async {
if (userId.trim().isEmpty) {
return ApiResult(
success: false,
message: 'userId no proporcionado',
code: 'BiometricInvalidUserId',
error: null,
);
}
try {
final bool isDeviceSupported = await _localAuth.isDeviceSupported();
final bool canCheckBiometrics = await _localAuth.canCheckBiometrics;
if (!isDeviceSupported && !canCheckBiometrics) {
return ApiResult(
success: false,
message: 'Dispositivo no compatible con biometría',
code: 'BiometricNotSupported',
error: null,
);
}
final List<BiometricType> availableBiometrics =
await _localAuth.getAvailableBiometrics();
if (availableBiometrics.isEmpty) {
return ApiResult(
success: false,
message: 'No hay credenciales biométricas registradas',
code: 'BiometricNotEnrolled',
error: null,
);
}
final users = await getUsersWithBiometrics();
return ApiResult(
success: true,
message: 'Verificación exitosa',
code: 'BiometricCheckSuccess',
error: null,
data: {
'isEnabled': users.contains(userId),
});
} catch (e) {
debugPrint('Error en isBiometricEnabledForUser: $e');
return ApiResult(
success: false,
message: 'Error al verificar la biometría para el usuario',
code: 'BiometricCheckError',
error: e.toString(),
);
}
}