//////////////////////////////////////////////////////////////////////
//
//	O[v̍\ύX̎sʂ\܂B
//
//		ύX
//			2005.02.18  VK쐬  koji
//
//	@\
//
//	O[ṽc[\ύX܂B
//
//////////////////////////////////////////////////////////////////////
/*
 * 쐬: 2005/02/18
 *
 * TODO ̐ꂽt@C̃ev[gύXɂ͎փWv:
 * EBhE - ݒ - Java - R[hEX^C - R[hEev[g
 */
package jp.co.ntt.lms.xmf.actions.xmo.GroupAndPeople;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import jp.co.ntt.lms.xmo.Groups.GroupsClient;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.util.MessageResources;

/**
 * @author Administrator
 *
 * TODO ̐ꂽ^Rg̃ev[gύXɂ͎փWv:
 * EBhE - ݒ - Java - R[hEX^C - R[hEev[g
 */
public class GroupAndPeopleFrame_FunctionAction extends Action {

	/* ( Javadoc)
	 * @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
	 */
	public ActionForward execute(ActionMapping map, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		HttpSession session = request.getSession();

		// bZ[W\[X擾
		MessageResources msgResources = getResources(request, "msg.xmf.xmo.GroupAndPeople.GroupAndPeopleMessage");
		
		///////////////////////////////////////////
		// p[^擾
		// 	EreturnURL	߂y[W		K{
		///////////////////////////////////////////
		String strReturnURL_o = request.getParameter("returnURL"); // ߂y[W

		String strGroupRootName_o = "";						//O[v[g

		String strLoginUserID = (String)session.getAttribute(msgResources.getMessage("USER_ID"));

		// OC[UX[p[[Uʂ̊Ǘ҂Ń[gID؂蕪܂B
		String strTreeRoot_o = null;
		if( strLoginUserID == null ) {
			// ZbV؂Ăꍇ̓OCʂɃ_CNg
			return map.findForward("loginRedirect");
		}
		else {
			// OC[UX[p[[Ȕꍇ
			if( strLoginUserID.equals(msgResources.getMessage("SUPER_USER")) ) {
				strTreeRoot_o = msgResources.getMessage("GROUP_ROOT_o");
				//////////////////////////////////////////////////
				//O[ṽ[gf[^x[X擾B
				//////////////////////////////////////////////////
				GroupsClient objGroups = new GroupsClient();
				// ̐ݒ
				objGroups.setWhereGroupID( msgResources.getMessage("GROUP_ROOT_o") );
				if( !objGroups.select() ) {
					// ܂Ȃꍇ
					if( objGroups.isErr() ) {
						// G[̏ꍇ
						response.sendRedirect( objGroups.getURL() );
					}
					else {
						String strMessage =  objGroups.getMessage();
						return getParamErrForward(map, request, strMessage, null, true );
					}
				}

				// O[v̎擾
				if( objGroups.next() ) {
					strGroupRootName_o = objGroups.getGroupName();
				}
				else {
					//O[v݂ȂꍇG[o͂
					String strMessage =  "O[v݂܂B";
					return getParamErrForward(map, request, strMessage, null, true );
				}

			}
			else {
				strTreeRoot_o = msgResources.getMessage("GROUP_TREE_ROOT");
				strGroupRootName_o = msgResources.getMessage("TREE_ROOT_NAME");
			}
		}

		// c[f[^擾p̃Avbg
		String strServerName_o = request.getServerName();
		int intServerPort_o = request.getServerPort();
		String strContextPath_o = request.getContextPath();
		
		// \pf[^i[
		request.setAttribute("strReturnURL_o", strReturnURL_o);
		request.setAttribute("strTreeRoot_o", strTreeRoot_o);
		request.setAttribute("strServerName_o", strServerName_o);
		request.setAttribute("intServerPort_o", new Integer(intServerPort_o));
		request.setAttribute("strContextPath_o", strContextPath_o);

		return map.findForward("success");
	}

	private ActionForward getParamErrForward(ActionMapping map, HttpServletRequest request, String strMessage, String strDetail, boolean isClose){
		request.setAttribute("message", strMessage);
		request.setAttribute("detail", strDetail);
		if( isClose ) {
			request.setAttribute("close", "on");
		}
		return map.findForward("paramError");
	}
}
