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);
|
}
|
}
|