/* * Aipo is a groupware program developed by TOWN, Inc. * Copyright (C) 2004-2015 TOWN, Inc. * http://www.aipo.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.aimluck.eip.system.util; import java.util.List; import org.apache.cayenne.exp.Expression; import org.apache.cayenne.exp.ExpressionFactory; import org.apache.jetspeed.services.JetspeedSecurity; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; import org.apache.jetspeed.services.resources.JetspeedResources; import org.apache.jetspeed.services.security.UnknownUserException; import org.apache.turbine.util.RunData; import org.apache.velocity.context.Context; import com.aimluck.eip.cayenne.om.account.EipMCompany; import com.aimluck.eip.common.ALBaseUser; import com.aimluck.eip.common.ALEipConstants; import com.aimluck.eip.orm.Database; import com.aimluck.eip.services.config.ALConfigHandler.Property; import com.aimluck.eip.services.config.ALConfigService; import com.aimluck.eip.util.ALEipUtils; import com.aimluck.eip.util.ALServletUtils; /** * */ public class SystemUtils { /** logger */ private static final JetspeedLogger logger = JetspeedLogFactoryService .getLogger(SystemUtils.class.getName()); public static final String COMPANY_PORTLET_NAME = "Company"; /** Webアプリケーションサーバのポート番号 */ private static final int WEBAPPSERVER_PORT = JetspeedResources.getInt( "aipo.webappserver.port", 80); public static final String SYSTEM_PORTLET_NAME = "System"; /** * セッション中のエンティティIDで示されるユーザ情報を取得する。 論理削除されたユーザを取得した場合はnullを返す。 * * @param rundata * @param context * @return */ public static ALBaseUser getBaseUser(RunData rundata, Context context) { String userid = ALEipUtils.getTemp(rundata, context, ALEipConstants.ENTITY_ID); try { if (userid == null) { logger.debug("Empty ID..."); return null; } ALBaseUser user = (ALBaseUser) JetspeedSecurity.getUser(userid); // 削除済みユーザの取得は行わない。 // By Haruo Kaneko if ("T".equals(user.getDisabled())) { return null; } else { return (ALBaseUser) JetspeedSecurity.getUser(userid); } } catch (UnknownUserException uex) { logger.error("UnknownUserException : UserID = " + userid); return null; } catch (Exception ex) { logger.error("system", ex); return null; } } /** * * @param rundata * @param context * @return */ public static EipMCompany getEipMCompany(RunData rundata, Context context) { EipMCompany result = null; String id = ALEipUtils.getTemp(rundata, context, ALEipConstants.ENTITY_ID); try { if (id == null || Integer.valueOf(id) == null) { logger.debug("Empty ID..."); return result; } Expression exp = ExpressionFactory.matchDbExp(EipMCompany.COMPANY_ID_PK_COLUMN, Integer .valueOf(id)); List<EipMCompany> list = Database.query(EipMCompany.class, exp).fetchList(); if (list == null || list.size() == 0) { logger.debug("Not found ID..."); return result; } result = list.get(0); } catch (Exception ex) { logger.error("system", ex); } return result; } /** * Webアプリケーションサーバのポート番号を取得する。 * * @return */ public static int getServerPort() { return WEBAPPSERVER_PORT; } /** * @see ALServletUtils#getAccessUrl(String, int, boolean) * @param ip * @param port * @param servername * @param isGlobal * @return * @deprecated */ @Deprecated public static String getUrl(String ip, int port, String servername, boolean isGlobal) { if (ip == null || ip.length() == 0 || port == -1) { return ""; } String protocol = isGlobal ? ALConfigService.get(Property.ACCESS_GLOBAL_URL_PROTOCOL) : ALConfigService.get(Property.ACCESS_LOCAL_URL_PROTOCOL); StringBuffer url = new StringBuffer(); if (port == 80 || port == 443) { url.append(protocol).append("://").append(ip).append("/").append( servername).append("/"); } else { url .append(protocol) .append("://") .append(ip) .append(":") .append(port) .append("/") .append(servername) .append("/"); } return url.toString(); } }