private void initConfiguration() { configurationDao.checkAndUpdateDatabaseEntries(); final ConfigurationDO entry = configurationDao.getEntry(ConfigurationParam.DEFAULT_TIMEZONE); entry.setTimeZone(DateHelper.EUROPE_BERLIN); configurationDao.internalUpdate(entry); }
/** * Checks and creates missing data base entries. Updates also out-dated descriptions. */ @Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW, isolation = Isolation.REPEATABLE_READ) public void checkAndUpdateDatabaseEntries() { final List<ConfigurationDO> list = internalLoadAll(); final Set<String> params = new HashSet<String>(); for (final ConfigurationParam param : ConfigurationParam.values()) { checkAndUpdateDatabaseEntry(param, list, params); } for (final ConfigurationDO entry : list) { if (params.contains(entry.getParameter()) == false) { log.error("Unknown configuration entry. Mark as deleted: " + entry.getParameter()); internalMarkAsDeleted(entry); } } }
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS) public ConfigurationDO getEntry(final IConfigurationParam param) { Validate.notNull(param); @SuppressWarnings("unchecked") final List<ConfigurationDO> list = (List<ConfigurationDO>) getHibernateTemplate() .find("from ConfigurationDO c where c.parameter = ?", param.getKey()); if (list == null || list.isEmpty() == true || list.get(0) == null) { return null; } return list.get(0); }
@SuppressWarnings("unchecked") @Test public void testConfiguration() { ConfigurationDO config = configurationDao.getEntry(ConfigurationParam.MESSAGE_OF_THE_DAY); config = configurationDao.getEntry(ConfigurationParam.MESSAGE_OF_THE_DAY); assertNotNull(config); config = new ConfigurationDO().setType(ConfigurationType.STRING); config.setParameter("unknown"); config.setValue("Hurzel"); assertNotNull(config); configurationDao.internalSave(config); List<ConfigurationDO> list = (List<ConfigurationDO>) hibernateTemplate .find("from ConfigurationDO c where c.parameter = 'unknown'"); config = list.get(0); assertEquals("Hurzel", config.getStringValue()); configurationDao.checkAndUpdateDatabaseEntries(); list = (List<ConfigurationDO>) hibernateTemplate.find("from ConfigurationDO c where c.parameter = 'unknown'"); config = list.get(0); assertEquals("Entry should be deleted.", true, config.isDeleted()); config = configurationDao.getEntry(ConfigurationParam.MESSAGE_OF_THE_DAY); configurationDao.internalMarkAsDeleted(config); configurationDao.checkAndUpdateDatabaseEntries(); config = configurationDao.getEntry(ConfigurationParam.MESSAGE_OF_THE_DAY); assertEquals("Object should be restored.", false, config.isDeleted()); }
@Test public void testGetMinPasswordLength() { final int defaultMinPwLen = ConfigurationParam.MIN_PASSWORD_LENGTH.getDefaultIntValue(); // default assertEquals(defaultMinPwLen, configurationService.getMinPasswordLength()); final ConfigurationDO minPwLenEntry = configurationDao.getEntry(ConfigurationParam.MIN_PASSWORD_LENGTH); minPwLenEntry.setIntValue(16); configurationDao.internalUpdate(minPwLenEntry); assertEquals(16, configurationService.getMinPasswordLength()); // null -> use default minPwLenEntry.setIntValue(null); configurationDao.internalUpdate(minPwLenEntry); assertEquals(defaultMinPwLen, configurationService.getMinPasswordLength()); }
private ConfigurationDO getConfigurationDO(final ConfigurationParam param) { final ConfigurationDO configurationDO = configurationDao.getEntry(param); if (configurationDO == null) { log.error("Oups, can't find configuration parameter '" + param + "'. You can re-configure it anytime later."); } return configurationDO; }
@Override public boolean storePluginToBeActivated(String id, boolean activate) { Set<String> active = getActivePlugins(); if (activate == true) { active.add(id); } else { active.remove(id); } String sval = StringUtils.join(active, ","); ConfigurationDO configuration = configurationDao.getEntry(ConfigurationParam.PLUGIN_ACTIVATED); if (configuration == null) { configuration = new ConfigurationDO(); ConfigurationParam param = ConfigurationParam.PLUGIN_ACTIVATED; configuration.setParameter(param.getKey()); configuration.setConfigurationType(param.getType()); configuration.setGlobal(param.isGlobal()); } configuration.setStringValue(sval); configurationDao.saveOrUpdate(configuration); GlobalConfiguration.getInstance().forceReload(); return false; }
internalUpdate(configuration); configuration.setStringValue(String.valueOf(param.getDefaultBooleanValue())); internalSave(configuration);
try { ScriptUtils.executeSqlScript(databaseService.getDataSource().getConnection(), configurationDao.getApplicationContext().getResource("classpath:data/pfTestdata.sql")); } catch (Exception e) { log.error("Exception occured while running test data insert script. Message: " + e.getMessage()); configurationDao.checkAndUpdateDatabaseEntries(); if (setupForm.getTimeZone() != null) { final ConfigurationDO configurationDO = getConfigurationDO(ConfigurationParam.DEFAULT_TIMEZONE); if (configurationDO != null) { configurationDO.setTimeZone(setupForm.getTimeZone()); configurationDao.update(configurationDO);
configurationDao.checkAndUpdateDatabaseEntries(); final List<IColumn<ConfigurationDO, String>> columns = new ArrayList<IColumn<ConfigurationDO, String>>(); final CellItemListener<ConfigurationDO> cellItemListener = new CellItemListener<ConfigurationDO>()
@Override public Object getDaoValue(IConfigurationParam parameter, ConfigurationDO configurationDO) { return configDao.getValue(parameter, configurationDO); }
/** * Test flag password change verification on newly entered password, that passwords have to change. */ @Test public void testGetFlagPasswordChange() { final boolean defaultFlagPwChange = ConfigurationParam.PASSWORD_FLAG_CHECK_CHANGE.getDefaultBooleanValue(); // default assertEquals(defaultFlagPwChange, configurationService.getFlagCheckPasswordChange()); final ConfigurationDO flagPwChange = configurationDao.getEntry(ConfigurationParam.PASSWORD_FLAG_CHECK_CHANGE); flagPwChange.setBooleanValue(false); configurationDao.internalUpdate(flagPwChange); assertEquals(false, configurationService.getFlagCheckPasswordChange()); } }
@Override public TimeZone getTimezone() { ConfigurationDO configurationDO = configDao.getEntry(ConfigurationParam.DEFAULT_TIMEZONE); if (configurationDO != null) { return configurationDO.getTimeZone(); } else { log.error("No timezone configured in db configuration. Return default timezone."); return TimeZone.getDefault(); } }
@Override public TeamCalDO getVacationCalendar() { return teamCalCache.getCalendar((Integer) configDao.getValue(ConfigurationParam.VACATION_CAL_ID)); }
private void initialize() { if (initialized == true) { return; } defaultTenant = tenantService.getDefaultTenant(); logon(TEST_ADMIN_USER); final ConfigurationDO configurationDO = configurationDao.getEntry(ConfigurationParam.MULTI_TENANCY_ENABLED); configurationDO.setBooleanValue(true); configurationDao.internalUpdate(configurationDO); superAdminDefault = createUser("mt_superAdminDefault", true); superAdmin2 = createUser("mt_superAdmin2", true); superAdmin3 = createUser("mt_superAdmin3", true); admin1 = createUser("mt_admin1", false); admin2 = createUser("mt_admin2", false); user1 = initTestDB.addUser(new PFUserDO().setUsername("mt_user1")); logon(superAdminDefault); // defaultTenant = createTenant("Tenant 1", true, superAdminDefault, admin1); tenant2 = createTenant("Tenant 2", false, superAdmin2, superAdminDefault, admin1, admin2); tenant3 = createTenant("Tenant 3", false); }
@Override public String getHREmailadress() { ConfigurationDO hrMailaddress = configDao.getEntry(ConfigurationParam.HR_MAILADDRESS); if (hrMailaddress != null) { return hrMailaddress.getStringValue(); } return null; }
@Override public Calendar getEndDateVacationFromLastYear() { int day = 31; int month = 2; ConfigurationDO configDO = configDao.getEntry(ConfigurationParam.END_DATE_VACATION_LASTR_YEAR); if (configDO != null) { String dayMonthString = configDO.getStringValue(); String[] dayMonthParts = dayMonthString.split("\\."); try { month = Integer.parseInt(dayMonthParts[1]) - 1; day = Integer.parseInt(dayMonthParts[0]); } catch (NumberFormatException e) { log.error("Error while parsing ConfigurationParam.END_DATE_VACATION_LASTR_YEAR: " + dayMonthString); day = 31; month = 2; } } Calendar result = Calendar.getInstance(ThreadLocalUserContext.getTimeZone()); result.set(result.get(Calendar.YEAR), month, day, 23, 59, 59); return result; }
@Override public int getMinPasswordLength() { try { final ConfigurationDO minPwLenEntry = configDao.getEntry(ConfigurationParam.MIN_PASSWORD_LENGTH); if (minPwLenEntry != null) { final Integer minPwLenValue = minPwLenEntry.getIntValue(); if (minPwLenValue != null) { return minPwLenValue; } } } catch (final RuntimeException e) { // this could happen if the database is not initialized (during projectforge initial setup) log.warn("Exception while getting the min password length configuration.", e); } return ConfigurationParam.MIN_PASSWORD_LENGTH.getDefaultIntValue(); }
@Override public boolean getFlagCheckPasswordChange() { try { final ConfigurationDO flagCheckPwChangeConf = configDao.getEntry(ConfigurationParam.PASSWORD_FLAG_CHECK_CHANGE); if (flagCheckPwChangeConf != null) { final Boolean flagCheckPwChange = flagCheckPwChangeConf.getBooleanValue(); if (flagCheckPwChange != null) { return flagCheckPwChange; } } } catch (final RuntimeException e) { // this could happen if the database is not initialized (during projectforge initial setup) log.warn("Exception while getting configuration flag - password change requirement.", e); } return ConfigurationParam.PASSWORD_FLAG_CHECK_CHANGE.getDefaultBooleanValue(); }