package fi.otavanopisto.muikku.controller; import java.util.logging.Logger; import javax.inject.Inject; import org.apache.commons.lang3.math.NumberUtils; import fi.otavanopisto.muikku.dao.base.SystemSettingDAO; import fi.otavanopisto.muikku.model.base.SystemSetting; public class SystemSettingsController { private static final long DEFAULT_UPLOAD_FILE_SIZE_LIMIT = 10_485_760; // 10 mb @Inject private Logger logger; @Inject private SystemSettingDAO systemSettingDAO; public String getSetting(String key) { SystemSetting systemSetting = systemSettingDAO.findByKey(key); if (systemSetting == null) { return null; } else { return systemSetting.getValue(); } } public SystemSetting setSetting(String key, String value) { SystemSetting systemSetting = systemSettingDAO.findByKey(key); if (systemSetting == null) { return systemSettingDAO.create(key, value); } else { return systemSettingDAO.update(systemSetting, value); } } public long getUploadFileSizeLimit() { String uploadFileSizeLimitString = getSetting("uploadFileSizeLimit"); if (uploadFileSizeLimitString == null) { return DEFAULT_UPLOAD_FILE_SIZE_LIMIT; } if (NumberUtils.isDigits(uploadFileSizeLimitString)) { return Long.parseLong(uploadFileSizeLimitString, 10); } else { logger.severe("Invalid upload file size limit: " + uploadFileSizeLimitString); return DEFAULT_UPLOAD_FILE_SIZE_LIMIT; } } public String getSystemEmailSenderAddress() { String systemEmailAddress = getSetting("systemEmailSenderAddress"); if (systemEmailAddress == null) { return "no-reply@muikkuverkko.fi"; } else { return systemEmailAddress; } } public String getHelpWorkspaceUrlName() { return getSetting("helpWorkspaceUrlName"); } }