Save manipulation details

This commit is contained in:
Jonas Lochmann
2019-08-05 00:00:00 +00:00
parent f94f801663
commit 23ff30a1ed
9 changed files with 109 additions and 7 deletions
@@ -48,6 +48,7 @@ export const prepareDeviceEntry = ({ familyId, userId, deviceAuthToken, deviceId
triedDisablingDeviceAdmin: false,
didReboot: false,
hadManipulation: false,
hadManipulationFlags: 0,
lastConnectivity: '0',
notSeenForLongTime: false,
didDeviceReportUninstall: false,
@@ -16,7 +16,7 @@
*/
import { UpdateDeviceStatusAction } from '../../../../action'
import { hasDeviceManipulation } from '../../../../database/device'
import { DeviceHadManipulationFlags, hasDeviceManipulation } from '../../../../database/device'
import { newPermissionStatusValues } from '../../../../model/newpermissionstatus'
import { protetionLevels } from '../../../../model/protectionlevel'
import { runtimePermissionStatusValues } from '../../../../model/runtimepermissionstatus'
@@ -56,6 +56,7 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
if (hasChanged && (deviceEntry.currentProtectionLevel !== deviceEntry.highestProtectionLevel)) {
deviceEntry.hadManipulation = true
deviceEntry.hadManipulationFlags |= DeviceHadManipulationFlags.ProtectionLevel
}
}
@@ -72,6 +73,7 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
if (hasChanged && (deviceEntry.currentUsageStatsPermission !== deviceEntry.highestUsageStatsPermission)) {
deviceEntry.hadManipulation = true
deviceEntry.hadManipulationFlags |= DeviceHadManipulationFlags.UsageStatsAccess
}
}
@@ -88,6 +90,7 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
if (hasChanged && (deviceEntry.currentNotificationAccessPermission !== deviceEntry.highestNotificationAccessPermission)) {
deviceEntry.hadManipulation = true
deviceEntry.hadManipulationFlags |= DeviceHadManipulationFlags.NotificationAccess
}
}
@@ -104,6 +107,7 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
if (hasChanged && (deviceEntry.currentOverlayPermission !== deviceEntry.highestOverlayPermission)) {
deviceEntry.hadManipulation = true
deviceEntry.hadManipulationFlags |= DeviceHadManipulationFlags.OverlayPermission
}
}
@@ -118,6 +122,7 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
if (hasChanged && (deviceEntry.asEnabled !== deviceEntry.wasAsEnabled)) {
deviceEntry.hadManipulation = true
deviceEntry.hadManipulationFlags |= DeviceHadManipulationFlags.AccessibiityService
}
}
@@ -133,6 +138,7 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
if (hasChanged && (deviceEntry.currentAppVersion !== deviceEntry.highestAppVersion)) {
deviceEntry.hadManipulation = true
deviceEntry.hadManipulationFlags |= DeviceHadManipulationFlags.AppVersion
}
}
@@ -70,6 +70,16 @@ export async function dispatchIgnoreManipulation ({ action, cache }: {
deviceEntry.hadManipulation = false
}
if (action.ignoreHadManipulationFlags !== 0) {
const newFlags = deviceEntry.hadManipulationFlags & (~action.ignoreHadManipulationFlags)
deviceEntry.hadManipulationFlags = newFlags
if (newFlags === 0) {
deviceEntry.hadManipulation = false
}
}
await deviceEntry.save({ transaction: cache.transaction })
cache.invalidiateDeviceList = true
}
@@ -89,6 +89,7 @@ export const generateServerDataStatus = async ({ database, clientStatus, familyI
tDisablingAdmin: item.triedDisablingDeviceAdmin,
reboot: item.didReboot,
hadManipulation: item.hadManipulation,
hadManipulationFlags: item.hadManipulationFlags,
reportUninstall: item.didDeviceReportUninstall,
isUserKeptSignedIn: item.isUserKeptSignedIn,
showDeviceConnected: item.showDeviceConnected,