/* * Copyright 2009-2012 by KNURT Systeme (http://www.knurt.de) * * Licensed under the Creative Commons License Attribution-NonCommercial-ShareAlike 3.0 Unported; * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://creativecommons.org/licenses/by-nc-sa/3.0/ * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.knurt.fam.template.model; import java.util.List; import java.util.Properties; import org.apache.commons.dbcp.BasicDataSource; import org.springframework.web.servlet.support.RequestContextUtils; import de.knurt.fam.connector.FamConnector; import de.knurt.fam.core.aspects.security.auth.FamAuth; import de.knurt.fam.core.aspects.security.encoder.FamEncoder; import de.knurt.fam.core.model.config.CronjobAction; import de.knurt.fam.core.model.config.CronjobActionContainer; import de.knurt.fam.core.model.persist.KeyValue; import de.knurt.fam.core.persistence.dao.FamDaoProxy; import de.knurt.fam.core.persistence.dao.config.RoleConfigDao; import de.knurt.fam.core.persistence.dao.couchdb.FamCouchDBDao; import de.knurt.heinzelmann.util.text.DurationAdapter; /** * produce the model for terms of use pages * * @see TemplateContentProperties#getTemplateModel(TemplateResource) * @author Daniel Oltmanns * @since 1.3.0 (10/19/2010) */ public class ViewSystemConfigurationModelFactory { private DurationAdapter durationAdapter = new DurationAdapter(DurationAdapter.SupportedLanguage.ENGLISH); public Properties getProperties(TemplateResource templateResource) { Properties result = new Properties(); result.put("configuration_reloaded", templateResource.configurationReloadIsRequested()); Properties props = new Properties(); props.put("config_dir", FamConnector.getConfigDirectory()); props.putAll(FamConnector.getGlobalProperties()); List<KeyValue> kvs = FamDaoProxy.keyValueDao().getAll(); for (KeyValue kv : kvs) { props.put("kv_" + kv.key(), kv.value()); } props.put("dao_booking_class", FamDaoProxy.bookingDao().getClass()); props.put("dao_facility_availability_class", FamDaoProxy.facilityDao().getClass()); props.put("dao_logbook_class", FamDaoProxy.logbookEntryDao().getClass()); props.put("dao_user_class", FamDaoProxy.userDao().getClass()); props.put("dao_kv_class", FamDaoProxy.keyValueDao().getClass()); props.put("role_standard", RoleConfigDao.getInstance().getStandardId()); props.put("role_admin", RoleConfigDao.getInstance().getAdminId()); props.put("authentication_module", FamAuth.me().getUserAuthentication().getClass()); // put in cronjobs List<CronjobAction> cronjobs = CronjobActionContainer.getInstance().getAllCronjobActions(); int i = 0; for (CronjobAction cronjob : cronjobs) { props.put(++i + "_cronjob_desc", cronjob.getDescription()); props.put(i + "_cronjob_class", cronjob.getClass()); props.put(i + "_cronjob_every", durationAdapter.getText(cronjob.resolveEvery())); } try { BasicDataSource bds = ((BasicDataSource) RequestContextUtils.getWebApplicationContext(templateResource.getRequest()).getBean("dataSource")); props.put("sql_url", bds.getUrl()); props.put("sql_username", bds.getUsername()); } catch (Exception e) { props.put("sql_ERROR", e.getMessage()); } props.put("password_encoding_algorithm", FamEncoder.getInstance().getEncoder().getAlgorithm()); boolean couchdb_test_query_succ = false; try { props.put("couchdb_real_name", FamCouchDBDao.getInstance().databaseName()); props.put("couchdb_document_count", FamCouchDBDao.getInstance().documentCount()); couchdb_test_query_succ = true; } catch (Exception e) { } props.put("couchdb_test_query_succ", couchdb_test_query_succ); result.put("props", props); return result; } }