Currently the application relies on client side management of user preferences within the application, storing data in either cookies or local storage. If the user is not authenticated, they will have to authenticate. If they are authenticated already the preferences page should display an option to save their current device preferences to their server profile. This transaction should send all configuration data to the server and store it in the UserAttribute objects within the User object.
There should be a configuration flag in kme.config.properties that allows an institution to turn this feature on and off. The values of the property should be "true" or "false" and it should be named kme.user.profile.enabled. If the value is false, the preferences screen should not display the option to save user preferences.
Items that should be saved are:
home screen information (order and visibility)