From 0bdefbf053beb80736eff0a13fe8b90618c8d6dc Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Fri, 21 Dec 2018 22:56:09 +0000
Subject: [PATCH] ServerConfiguration is also stored in json.

---
 borgbutler-server/src/main/java/de/micromata/borgbutler/server/user/SingleUserManager.java |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/user/SingleUserManager.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/user/SingleUserManager.java
index b7f2528..0391b8d 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/user/SingleUserManager.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/user/SingleUserManager.java
@@ -2,11 +2,12 @@
 
 import de.micromata.borgbutler.server.Languages;
 import de.micromata.borgbutler.server.RunningMode;
-import de.micromata.borgbutler.server.ServerConfigurationHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.Locale;
+import java.util.prefs.BackingStoreException;
+import java.util.prefs.Preferences;
 
 /**
  * Contains only one (dummy) user (for desktop version).
@@ -15,6 +16,7 @@
     private static final String USER_LOCAL_PREF_KEY = "userLocale";
     private static Logger log = LoggerFactory.getLogger(SingleUserManager.class);
     private UserData singleUser;
+    private Preferences preferences;
 
     public SingleUserManager() {
         if (RunningMode.getUserManagement() != RunningMode.UserManagement.SINGLE) {
@@ -22,14 +24,11 @@
                     + "'. Only allowed in '" + RunningMode.UserManagement.SINGLE + "'.");
         }
         log.info("Using SingleUserManger as user manager.");
+        preferences = Preferences.userRoot().node("de").node("micromata").node("borgbutler");
         singleUser = new UserData();
         singleUser.setUsername("admin");
         singleUser.setAdmin(true);
-        String language = ServerConfigurationHandler.getInstance().get("userLocale", null);
-        Locale locale = Languages.asLocale(language);
-        singleUser.setLocale(locale);
-        String dateFormat = ServerConfigurationHandler.getInstance().get("userDateFormat", null);
-        singleUser.setDateFormat(dateFormat);
+        load(singleUser);
     }
 
     public UserData getUser(String id) {
@@ -37,10 +36,10 @@
     }
 
     /**
-     * Stores only the user's configured locale.
+     * Stores only the user's configured locale as preference.
      *
      * @param userData
-     * @see ServerConfigurationHandler#save(String, String)
+     * @see Preferences
      */
     @Override
     public void saveUser(UserData userData) {
@@ -49,7 +48,17 @@
         String dateFormat = userData.getDateFormat();
         this.singleUser.setDateFormat(dateFormat);
         String lang = Languages.asString(locale);
-        ServerConfigurationHandler.getInstance().save("userLocale", lang);
-        ServerConfigurationHandler.getInstance().save("userDateFormat", dateFormat);
+        preferences.put(USER_LOCAL_PREF_KEY, lang);
+        try {
+            preferences.flush();
+        } catch (BackingStoreException ex) {
+            log.error("Can't save user locale to preferences: " + ex.getMessage(), ex);
+        }
+    }
+
+    private void load(UserData userData) {
+        String language = preferences.get(USER_LOCAL_PREF_KEY, "en");
+        Locale locale = Languages.asLocale(language);
+        singleUser.setLocale(locale);
     }
 }

--
Gitblit v1.10.0