private void syncSettingsWithDb() { try { if (dbSettings.getLastRun() == null) { markPlatformStateAs(FIRST_RUN); } else { markPlatformStateAs(NORMAL_RUN); } if (isFirstRun() || settingsRecord == null || !settingsRecord.getConfigFileChecksum().equals(dbSettings.getConfigFileChecksum())) { LOGGER.info("Updating database startup"); dbSettings.updateSettings(settingsRecord.getConfigFileChecksum(), settingsRecord.getFilePath(), settingsRecord.asProperties()); } try { MessageDigest digest = MessageDigest.getInstance("MD5"); dbSettings.setConfigFileChecksum(new String(digest.digest(dbSettings.asProperties().toString().getBytes()))); } catch (NoSuchAlgorithmException e) { throw new MotechException("MD5 algorithm not available", e); } dbSettings.setLastRun(DateTime.now()); dbSettings.setPlatformInitialized(true); configurationService.savePlatformSettings(dbSettings); } catch (Exception e) { LOGGER.error(e.getMessage(), e); markPlatformStateAs(DB_ERROR); } }
@RequestMapping(value = "/users/loginmode", method = RequestMethod.GET) @ResponseBody public String loginMode() { MotechSettings settings = settingsFacade.getPlatformSettings(); return settings.getLoginMode().getName().toLowerCase(); }
public Properties getActivemqConfig() { MotechSettings settings = getPlatformSettings(); if (settings == null) { // try reading from classpath try (InputStream in = getClass().getClassLoader().getResourceAsStream("motech-settings.properties")) { Properties properties = new Properties(); properties.load(in); return properties; } catch (IOException e) { return new Properties(); } } Properties activemqConfig = settings.getActivemqProperties(); if (activemqConfig == null) { return new Properties(); } replaceQueueNames(activemqConfig); return activemqConfig; }
@RequestMapping(value = "/loginviewdata", method = RequestMethod.GET) @ResponseBody public LoginViewData getLoginViewData(final HttpServletRequest request) { LoginViewData view = new LoginViewData(); view.setLoginMode(settingsFacade.getPlatformSettings().getLoginMode()); view.setOpenIdProviderName(settingsFacade.getPlatformSettings().getProviderName()); view.setOpenIdProviderUrl(settingsFacade.getPlatformSettings().getProviderUrl()); view.setLoginForm(new LoginForm()); view.setError(request.getParameter("error")); view.setPageLang(localeService.getUserLocale(request)); String contextPath = request.getSession().getServletContext().getContextPath(); if (StringUtils.isNotBlank(contextPath) && !"/".equals(contextPath)) { view.setContextPath(contextPath.substring(1) + "/"); } else if (StringUtils.isBlank(contextPath) || "/".equals(contextPath)) { view.setContextPath(""); } return view; } }
@Override public void savePlatformSettings(MotechSettings settings) { savePlatformSettings(settings.asProperties()); }
private Map<String, Object> loginInformationParams(MotechUser user, String password) { Map<String, Object> params = new HashMap<>(); String link = settingsFacade.getPlatformSettings().getServerUrl(); params.put(TEMPLATE_PARAM_LINK, link); params.put(TEMPLATE_PARAM_USERNAME, user.getUserName()); params.put(TEMPLATE_PARAM_PASSWORD, password); params.put(TEMPLATE_PARAM_MESSAGES, messageSource); params.put(TEMPLATE_PARAM_LOCALE, user.getLocale()); return params; }
private String getSenderAddress() { String address = "noreply@"; String serverUrl = settingsFacade.getPlatformSettings().getServerHost(); if (StringUtils.isNotBlank(serverUrl)) { address += serverUrl; } return address; }
if (!dbSettings.isPlatformInitialized()) { if (bootstrapConfig.getConfigSource() == ConfigSource.FILE) { LOGGER.info("Config source is FILE, and no settings in DB.");
@Override public Properties exportPlatformSettings() { MotechSettings currentSettings = configLoader.loadMotechSettings(); SettingsRecord settingsRecord = settingService.retrieve("id", 1); SettingsRecord dbSettings = (settingsRecord == null ? new SettingsRecord() : settingsRecord); Properties export = new Properties(); if (currentSettings != null) { export.putAll(currentSettings.asProperties()); } if (dbSettings != null) { export.putAll(dbSettings.getActivemqProperties()); export.put(ConfigurationConstants.LANGUAGE, dbSettings.getLanguage()); } return export; } }
private Map<String, Object> templateParams(PasswordRecovery recovery, String flag) { Map<String, Object> params = new HashMap<>(); String path = "/module"; if ("reset".equals(flag)) { path += "/server/"; } else { path += "/websecurity/api/"; } String link = joinUrls(settingsFacade.getPlatformSettings().getServerUrl(), path + "forgot" + flag + "?token=") + recovery.getToken(); params.put(TEMPLATE_PARAM_LINK, link); params.put(TEMPLATE_PARAM_USERNAME, recovery.getUsername()); params.put(TEMPLATE_PARAM_MESSAGES, messageSource); params.put(TEMPLATE_PARAM_LOCALE, recovery.getLocale()); return params; }
private boolean needAdmin() { return dbSettings.getLoginMode().isRepository() && !userService.hasActiveAdminUser(); }
@RequestMapping(value = "/users", method = RequestMethod.GET) @ResponseBody public List<MotechUserProfile> getUsers() { return settingsFacade.getPlatformSettings().getLoginMode().isOpenId() ? motechUserService.getOpenIdUsers() : motechUserService.getUsers(); }
public String forgotPost(@RequestBody String email) { LoginMode loginMode = settingsFacade.getPlatformSettings().getLoginMode();
@RequestMapping(value = "/forgotviewdata", method = RequestMethod.GET) @ResponseBody public ForgotViewData getForgotViewData(final HttpServletRequest request) { ForgotViewData view = new ForgotViewData(); view.setLoginMode(settingsFacade.getPlatformSettings().getLoginMode()); view.setEmailGetter(true); view.setProcessed(false); view.setEmail(""); view.setPageLang(cookieLocaleResolver.resolveLocale(request)); return view; }