There currently is an issue with the systems ability to restore settings that were modified after the initial configuration/login.
Currently, the system is able to correctly store the existing settings when a user wants to log in. If a the system configuration is modified (eg. via a PCP or due to context changes), the stored settings are not modified since we still (correctly) want the settings to be restored what they were before the user logged in. The problem arises if the updating results in modifying a setting that was not already modified during the initial login, since it wasn't originally stored, and isn't stored from the update, it will never be stored and hence not changed back. What needs to be done to fix this issue is that: whenever an update to the configuration happens, the system should check if any of the changes to be modified are not already stored - and if they arent, they should be added to the stored pre-login system state. This way all the settings that were at any point changed will be stored so we can restore the system when the user logs out again.
Illustration of the issue:
1) Some Application A on the system has the settings A1: 18, A2: true, A3: "Hello world"
2) A user X logs in with an NP set modifying settings A1: 15, A3: "Hello Mars"
3) The stored settings will now be
, and the settings of the system will be A1: 15, A2: true, A3: "Hello Mars"
4) User uses the PCP to change setting A2 to false.
5) The stored settings will still be
(this is the problem), and the settings of the system will be A1: 15, A2: false, A3: "Hello Mars"
6) User logs out and the stored settings (
) are set on the system in an attempt to return it to the original state, resulting in the following system settings: A1: 18, A2: false, A3: "Hello world"
7) The setting A2 is wrong, it should be 'true'