mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
17.32.2018 5d528358e2321011146bd59c2cece320ced34fc3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package de.micromata.borgbutler.server.user;
 
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;
 
/**
 * Contains only one (dummy) user (for desktop version).
 */
public class SingleUserManager extends UserManager {
    private static final String USER_LOCAL_PREF_KEY = "userLocale";
    private static Logger log = LoggerFactory.getLogger(SingleUserManager.class);
    private UserData singleUser;
 
    public SingleUserManager() {
        if (RunningMode.getUserManagement() != RunningMode.UserManagement.SINGLE) {
            throw new IllegalStateException("Can't use SingleUserManager in user management mode '" + RunningMode.getUserManagement()
                    + "'. Only allowed in '" + RunningMode.UserManagement.SINGLE + "'.");
        }
        log.info("Using SingleUserManger as user manager.");
        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);
    }
 
    public UserData getUser(String id) {
        return singleUser;
    }
 
    /**
     * Stores only the user's configured locale.
     *
     * @param userData
     * @see ServerConfigurationHandler#save(String, String)
     */
    @Override
    public void saveUser(UserData userData) {
        Locale locale = userData.getLocale();
        this.singleUser.setLocale(locale);
        String dateFormat = userData.getDateFormat();
        this.singleUser.setDateFormat(dateFormat);
        String lang = Languages.asString(locale);
        ServerConfigurationHandler.getInstance().save("userLocale", lang);
        ServerConfigurationHandler.getInstance().save("userDateFormat", dateFormat);
    }
}