/*******************************************************************************
* Copyright (c) 2012 - 2015 hangum.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v2.1
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* hangum - initial API and implementation
******************************************************************************/
package com.hangum.tadpole.preference.define;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.service.ApplicationContext;
import com.hangum.tadpole.commons.libs.core.mails.dto.SMTPDTO;
import com.hangum.tadpole.commons.util.ApplicationArgumentUtils;
import com.hangum.tadpole.engine.manager.TadpoleApplicationContextManager;
import com.hangum.tadpole.engine.query.dao.system.UserInfoDataDAO;
import com.hangum.tadpole.engine.query.sql.TadpoleSystem_UserInfoData;
/**
* get administrator preference
*
*
* @author hangum
* @version 1.6.1
* @since 2015. 4. 17.
*
*/
public class GetAdminPreference extends AbstractPreference {
private static final Logger logger = Logger.getLogger(GetAdminPreference.class);
/**
* db_time_zone
* @return
*/
public static String getDBTimezone() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.DB_TIME_ZONE, AdminPreferenceDefine.DB_TIME_ZONE_VALUE);
}
/**
* system login method
* @return
*/
public static String getLoginMethod() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.SYSTEM_LOGIN_METHOD, AdminPreferenceDefine.SYSTEM_LOGIN_METHOD_VALUE);
}
/**
* system LDAP url
* @return
*/
public static String getLDAPURL() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.SYSTEM_LDAP_URL, AdminPreferenceDefine.SYSTEM_LDAP_URL_VALUE);
}
/**
* system LDAP User
* @return
*/
public static String getLDAPUser() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.SYSTEM_LDAP_USER, AdminPreferenceDefine.SYSTEM_LDAP_USER_VALUE);
}
/**
* system LDAP authentication
* @return
*/
public static String getLDAPAuthentication() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.SYSTEM_LDAP_AUTHENTICATION, AdminPreferenceDefine.SYSTEM_LDAP_AUTHENTICATION_VALUE);
}
/**
* api server uri
* @return
*/
public static String getApiServerURL() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.API_SERVER_URL, AdminPreferenceDefine.API_SERVER_URL_VALUE);
}
/**
* 디비 연결시 묻는 타입
*
* @return
*/
public static String getConnectionAskType() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.DB_CONNECTION_ASK, AdminPreferenceDefine.DB_CONNECTION_ASK_VALUE);
}
/**
* 신규 사용자 등록이 어드민의 허락이 필요하면 디비에 등록할때는 NO를 입력, 필요치 않으면 YES를 입력.
* 디폴트는 YES이므로 어드민 허락이 필요치 않다.
*
* @return
*/
public static String getNewUserPermit() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.NEW_USER_PERMIT, AdminPreferenceDefine.NEW_USER_PERMIT_VALUE);
}
/**
* 신규 디비 등록시 디비 패스워드가 저장 여부
* YES이면 패스워드 저장이다.
* @return
*/
public static String getSaveDBPassword() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.SAVE_DB_PASSWORD, AdminPreferenceDefine.SAVE_DB_PASSWORD_VALUE);
}
/**
* 사용자 디폴트 홈페이지.
* @return
*/
public static String getHomePage() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.DEFAULT_HOME, AdminPreferenceDefine.DEFAULT_HOME_VALUE);
}
/**
* 사용자 디폴트 홈페이지 오픈 여부
* @return
*/
public static String getHomePageOpen() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.DEFAULT_HOME_OPEN, AdminPreferenceDefine.DEFAULT_HOME_OPEN_VALUE);
}
/**
* 쿼리 결과 저장 디렉토리
* @return
*/
public static String getQueryResultSaved() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
String strDir = getAdminValue(mapUserInfoData, AdminPreferenceDefine.DEFAULT_QUERY_RESULT_SAVED, AdminPreferenceDefine.DEFAULT_QUERY_RESULT_SAVED_VALUE);
if("".equals(strDir)) {
strDir = ApplicationArgumentUtils.getResourcesDir();
}
return strDir;
}
/**
* 패스워드 복잡도 유무(NO)
* @return
*/
public static String getPasswdComplexity() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.PASSWD_COMPLEXITY, AdminPreferenceDefine.PASSWD_COMPLEXITY_VALUE);
}
/**
* 패스워드 최소 길이
* @return
*/
public static String getPasswdLengthLimit() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.PASSWD_LENGTH_LIMIT, AdminPreferenceDefine.PASSWD_LENGTH_LIMIT_VALUE);
}
/**
* 패스워드 변경 최하 일자
* @return
*/
public static String getPasswdDateLimit() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.PASSWD_DATE_LIMIT, AdminPreferenceDefine.PASSWD_DATE_LIMIT_VALUE);
}
/**
* 사용자가 디비를 추가 할 수 있는지 여부
* @return
*/
public static String getIsAddDB() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.IS_ADD_DB, AdminPreferenceDefine.IS_ADD_DB_VALUE);
}
/**
* 사용자가 디비를 공유 할 수있는지 여부
*
* @return
*/
public static String getIsSharedDB() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.IS_SHARED_DB, AdminPreferenceDefine.IS_SHARED_DB_VALUE);
}
/**
* 사용자가 기본으로 디비를 추가할 수 있는 갯수
*
* @return
*/
public static String getDefaultAddDBCnt() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.DEFAULT_ADD_DB_CNT, AdminPreferenceDefine.DEFAULT_ADD_DB_CNT_VALUE);
}
/**
* 기본 사용자 서비스 사용가능 일
*
* @return
*/
public static String getServiceDurationDay() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.SERVICE_DURATION_DAY, AdminPreferenceDefine.SERVICE_DURATION_DAY_VALUE);
}
/**
* 기본 사용자 서비스 사용가능 일
*
* @return
*/
public static String getSupportMonitoring() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.SUPPORT_MONITORING, AdminPreferenceDefine.SUPPORT_MONITORING_VALUE);
}
/**
* 사용자가 프리퍼런스를 수정 여부 지정.
* @return
*/
public static String getIsPreferenceModify() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.IS_PREFERENCE_MODIFY, AdminPreferenceDefine.IS_PREFERENCE_MODIFY_VALUE);
}
/**
* 사용자가 리소스 다운로드 받을수 없는지 유무
* @return
*/
public static String getIsDefaultDonwload() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.IS_RESOURCE_DOWNLOAD, AdminPreferenceDefine.IS_RESOURCE_DOWNLOAD_VALUE);
}
/**
* 쿼리 결과 다운로드 할때 한계값 지정
* @return
*/
public static String getQueryResultDownloadLimit() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.QUERY_RESULT_DOWNLOAD_LIMIT, AdminPreferenceDefine.QUERY_RESULT_DOWNLOAD_LIMIT_VALUE);
}
/**
* 패스워드 관리 시스템을 사용할 경우 패스워드 캐쉬 사용 여부 설정
* @return
*/
public static String getIsPasswdCacheUse() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.IS_PASSWD_CACHE, AdminPreferenceDefine.IS_PASSWD_CACHE_VALUE);
}
/**
* 메일 사용 타입을 지정한다.
* 없음, sendgrid, smtp
* @return
*/
public static String getMailUsingType() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
return getAdminValue(mapUserInfoData, AdminPreferenceDefine.MAIL_LOGIN_TYPE, AdminPreferenceDefine.MAIL_LOGIN_TYPE_VALUE);
}
/**
* 어드민이 지정한 프러럭타입 필터 값을 뺀다.
*
* @return
*/
public static String[] getViewProductTypeFilter() {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
String productFilter = getAdminValue(mapUserInfoData, AdminPreferenceDefine.SYSTEM_VIEW_PRODUCT_TYPE_FILTER, AdminPreferenceDefine.SYSTEM_VIEW_PRODUCT_TYPE_FILTER_VALUE);
return StringUtils.split(productFilter, ",");
}
/**
* update admin data
* @param key
* @param userInfoDao
*/
public static void updateAdminSessionData(String key, UserInfoDataDAO userInfoDao) {
Map<String, UserInfoDataDAO> mapUserInfoData = TadpoleApplicationContextManager.getAdminSystemEnv();
mapUserInfoData.put(key, userInfoDao);
}
/**
*
* @return
*/
public static SMTPDTO getSessionSMTPINFO() {
SMTPDTO dto = new SMTPDTO();
ApplicationContext context = RWT.getApplicationContext();
dto = (SMTPDTO)context.getAttribute("smtpinfo"); //$NON-NLS-1$
if(dto == null) {
dto = getSMTPINFO();
context.setAttribute("smtpinfo", dto); //$NON-NLS-1$
}
return dto;
}
/**
* set session smtp info
*
* @param dto
*/
public static void setSessionSmtpInfo(SMTPDTO smtpDto) {
ApplicationContext context = RWT.getApplicationContext();
context.setAttribute("smtpinfo", smtpDto);
}
/**
* get smtp
* @return
*/
private static SMTPDTO getSMTPINFO() {
SMTPDTO dto = new SMTPDTO();
try {
List<UserInfoDataDAO> listUserInfo = TadpoleSystem_UserInfoData.getUserInfoData(-1);
Map<String, UserInfoDataDAO> mapUserInfoData = new HashMap<String, UserInfoDataDAO>();
for (UserInfoDataDAO userInfoDataDAO : listUserInfo) {
mapUserInfoData.put(userInfoDataDAO.getName(), userInfoDataDAO);
}
dto.setLoginMethodType(getAdminValue(mapUserInfoData, AdminPreferenceDefine.MAIL_LOGIN_TYPE, AdminPreferenceDefine.MAIL_LOGIN_TYPE_VALUE));
dto.setDomain(getAdminValue(mapUserInfoData, AdminPreferenceDefine.MAIN_DOMAIN, AdminPreferenceDefine.MAIN_DOMAIN_VALUE));
dto.setSendgrid_api(getAdminValue(mapUserInfoData, AdminPreferenceDefine.SENDGRID_API_NAME, AdminPreferenceDefine.SENDGRID_API_VALUE));
dto.setStarttls_enable(getAdminValue(mapUserInfoData, AdminPreferenceDefine.SMTP_STARTTLS_ENABLE, AdminPreferenceDefine.SMTP_STARTTLS_ENABLE_VALUE));
dto.setIsAuth(getAdminValue(mapUserInfoData, AdminPreferenceDefine.SMTP_IS_AUTH, AdminPreferenceDefine.SMTP_IS_AUTH_VALUE));
dto.setHost(getAdminValue(mapUserInfoData, AdminPreferenceDefine.SMTP_HOST_NAME, AdminPreferenceDefine.SMTP_HOST_NAME_VALUE));
dto.setPort(getAdminValue(mapUserInfoData, AdminPreferenceDefine.SMTP_PORT, AdminPreferenceDefine.SMTP_PORT_VALUE));
dto.setEmail(getAdminValue(mapUserInfoData, AdminPreferenceDefine.SMTP_EMAIL, AdminPreferenceDefine.SMTP_EMAIL_VALUE));
dto.setPasswd(getAdminValue(mapUserInfoData, AdminPreferenceDefine.SMTP_PASSWD, AdminPreferenceDefine.SMTP_PASSWD_VALUE));
} catch (Exception e) {
logger.error("get stmt info", e); //$NON-NLS-1$
}
return dto;
}
}