login.java

来自「采用tapestry的简单OA系统」· Java 代码 · 共 79 行

JAVA
79
字号
package com.ejsun.entapps.presentation.pages.user;

import java.util.Locale;

import javax.servlet.http.Cookie;

import org.apache.tapestry.IEngine;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.callback.ICallback;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.event.PageRenderListener;

import com.ejsun.entapps.domain.organization.User;
import com.ejsun.entapps.presentation.Visit;
import com.ejsun.entapps.presentation.pages.ApplicationBasePage;
import com.ejsun.entapps.service.organization.OrganizationService;

/**	
 * @author	Quake Wang
 * @since	2004-3-21
 * @version $Revision: 1.1 $
 * 
 **/

public abstract class Login extends ApplicationBasePage implements PageRenderListener{
    private final static String LOGIN_ID_COOKIE = "SIMPLE_OA_LOGIN_ID";
	
    private final static int ONE_WEEK = 7 * 24 * 60 * 60;

    public abstract void setLoginId(String value);
    public abstract String getLoginId();
   
	public abstract String getPassword();    

    public abstract void setCallback(ICallback value);
    public abstract ICallback getCallback();
    
    public abstract OrganizationService getOrganizationService();
    
    public void attemptLogin(IRequestCycle cycle) {
        if (isInError()) return;
        User user = getOrganizationService().login(getLoginId(), getPassword());
		loginUser(user, cycle);
    }

    public void loginUser(User user, IRequestCycle cycle) {
        Visit visit = (Visit) getVisit();
        visit.setUser(user);
        
		IEngine engine = getEngine();
		//TODO refactor this        
		if(user.getLocale() != null){
			if (user.getLocale() == "Chinese") {
				getEngine().setLocale(Locale.SIMPLIFIED_CHINESE);
			} else {
				getEngine().setLocale(Locale.ENGLISH);
			}
		}

        ICallback callback = getCallback();
        if (callback == null)
            cycle.activate("Home");
        else
            callback.performCallback(cycle);

        Cookie cookie = new Cookie(LOGIN_ID_COOKIE, user.getLoginId());
        cookie.setPath(engine.getServletPath());
        cookie.setMaxAge(ONE_WEEK);

        cycle.getRequestContext().addCookie(cookie);
        engine.forgetPage(getPageName());
    }

    public void pageBeginRender(PageEvent event) {
        if (getLoginId() == null)
            setLoginId(getRequestCycle().getRequestContext().getCookieValue(LOGIN_ID_COOKIE));
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?