Add support for manipulationFlags

This commit is contained in:
Jonas Lochmann
2022-07-11 02:00:00 +02:00
parent 45f8a25b8b
commit acdec990ea
22 changed files with 306 additions and 19 deletions
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -16,7 +16,7 @@
*/
import { UpdateDeviceStatusAction } from '../../../../action'
import { DeviceHadManipulationFlags, hasDeviceManipulation } from '../../../../database/device'
import { DeviceHadManipulationFlags, DeviceManipulationFlags, hasDeviceManipulation } from '../../../../database/device'
import { newPermissionStatusValues } from '../../../../model/newpermissionstatus'
import { protetionLevels } from '../../../../model/protectionlevel'
import { runtimePermissionStatusValues } from '../../../../model/runtimepermissionstatus'
@@ -155,6 +155,14 @@ export async function dispatchUpdateDeviceStatus ({ deviceId, action, cache }: {
}
}
{
const effectiveManipulationFlags = action.addedManipulationFlags & DeviceManipulationFlags.ALL
if (effectiveManipulationFlags !== 0) {
deviceEntry.manipulationFlags = deviceEntry.manipulationFlags | effectiveManipulationFlags
}
}
await deviceEntry.save({ transaction: cache.transaction })
if (hasDeviceManipulation(deviceEntry)) {
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -81,6 +81,10 @@ export async function dispatchIgnoreManipulation ({ action, cache }: {
}
}
if (action.ignoreManipulationFlags !== 0) {
deviceEntry.manipulationFlags = deviceEntry.manipulationFlags & (~action.ignoreManipulationFlags)
}
await deviceEntry.save({ transaction: cache.transaction })
cache.invalidiateDeviceList = true
}
@@ -1,6 +1,6 @@
/*
* server component for the TimeLimit App
* Copyright (C) 2019 - 2020 Jonas Lochmann
* Copyright (C) 2019 - 2022 Jonas Lochmann
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -64,7 +64,8 @@ export async function getDeviceList ({ database, transaction, familyEntry }: {
asEnabled: item.asEnabled,
wasAsEnabled: item.wasAsEnabled,
activityLevelBlocking: item.activityLevelBlocking,
qOrLater: item.isQorLater
qOrLater: item.isQorLater,
mFlags: item.manipulationFlags
}))
}
}