Subversion Repositories SmartDukaan

Rev

Rev 2907 | Rev 3185 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
317 ashish 1
package in.shop2020.serving.controllers;
410 rajveer 2
 
781 vikas 3
import in.shop2020.serving.interceptors.UserAware;
2907 rajveer 4
import in.shop2020.serving.interceptors.UserInterceptor;
637 rajveer 5
import in.shop2020.serving.services.PageLoaderHandler;
419 rajveer 6
import in.shop2020.serving.services.UserSessionInfo;
2998 rajveer 7
import in.shop2020.serving.utils.DesEncrypter;
416 rajveer 8
 
2907 rajveer 9
import java.util.ArrayList;
555 chandransh 10
import java.util.HashMap;
2907 rajveer 11
import java.util.List;
410 rajveer 12
import java.util.Map;
13
 
416 rajveer 14
import javax.servlet.http.Cookie;
15
import javax.servlet.http.HttpServletRequest;
410 rajveer 16
import javax.servlet.http.HttpServletResponse;
416 rajveer 17
import javax.servlet.http.HttpSession;
410 rajveer 18
 
832 rajveer 19
import org.apache.log4j.Logger;
416 rajveer 20
import org.apache.struts2.interceptor.ServletRequestAware;
410 rajveer 21
import org.apache.struts2.interceptor.ServletResponseAware;
22
 
595 rajveer 23
import com.opensymphony.xwork2.ValidationAwareSupport;
24
 
317 ashish 25
/**
26
 * Base class for all user action handlers i.e. controllers
27
 * 
545 rajveer 28
 * @author rajveer
317 ashish 29
 */
781 vikas 30
public abstract class BaseController extends ValidationAwareSupport implements
31
		ServletResponseAware, ServletRequestAware, UserAware {
595 rajveer 32
	/**
33
	 * 
34
	 */
35
	private static final long serialVersionUID = 1L;
555 chandransh 36
	protected Map<String, Cookie> cookiesMap = null;
781 vikas 37
	protected HttpServletResponse response;
38
	protected HttpServletRequest request;
39
	protected HttpSession session;
1713 vikas 40
	protected String domainName;
781 vikas 41
	protected UserSessionInfo userinfo = null;
832 rajveer 42
	private static Logger log = Logger.getLogger(Class.class);
2998 rajveer 43
	private DesEncrypter desEncrypter = new DesEncrypter(UserInterceptor.COOKIE_DECRYPTION_STRING);
44
 
781 vikas 45
	protected Cookie userCookie = null;
46
 
47
	protected Map<String, String> htmlSnippets;
48
 
49
	PageLoaderHandler pageLoader = null;
2907 rajveer 50
 
416 rajveer 51
	public BaseController() {
637 rajveer 52
		pageLoader = new PageLoaderHandler();
650 rajveer 53
		htmlSnippets = new HashMap<String, String>();
416 rajveer 54
	}
781 vikas 55
 
410 rajveer 56
	@Override
781 vikas 57
	public void setCookiesMap(Map<String, Cookie> cookiesMap) {
2998 rajveer 58
		log.info("Received cookiesMap.");
410 rajveer 59
		this.cookiesMap = cookiesMap;
60
	}
781 vikas 61
 
410 rajveer 62
	@Override
781 vikas 63
	public void setServletResponse(HttpServletResponse response) {
410 rajveer 64
		this.response = response;
65
	}
781 vikas 66
 
416 rajveer 67
	@Override
781 vikas 68
	public void setServletRequest(HttpServletRequest request) {
416 rajveer 69
		this.request = request;
419 rajveer 70
	}
555 chandransh 71
 
781 vikas 72
	@Override
73
	public void setSession(HttpSession session) {
74
		this.session = session;
555 chandransh 75
	}
76
 
781 vikas 77
	@Override
78
	public void setUserSessionInfo(UserSessionInfo userInfo) {
79
		this.userinfo = userInfo;
419 rajveer 80
	}
81
 
781 vikas 82
	@Override
83
	public void setUserCookie(Cookie userCookie) {
828 rajveer 84
		if(userCookie != null){
837 vikas 85
			log.info("cookie name is:" +  userCookie.getName() + "   value is:"+ userCookie.getValue() + " path : " + userCookie.getPath());
828 rajveer 86
		}
781 vikas 87
		this.userCookie = userCookie;
419 rajveer 88
	}
424 rajveer 89
 
1713 vikas 90
	@Override
91
    public void setCookieDomainName(String domainName) {
92
        this.domainName = domainName;
93
    }
94
 
781 vikas 95
	public String getHeaderSnippet() {
924 vikas 96
		String url = request.getQueryString();
97
		log.info("Query String is: " + url);
98
		if (url == null) {
99
			url = "";
100
		} else {
101
			url = "?" + url;
102
		}
103
		url = request.getRequestURI() + url;
781 vikas 104
		return pageLoader.getHeaderHtml(userinfo.isLoggedIn(),
924 vikas 105
				userinfo.getNameOfUser(), url);
637 rajveer 106
	}
107
 
781 vikas 108
	public String getSearchBarSnippet() {
793 rajveer 109
		//FIXME From where it is called, need to pass category
637 rajveer 110
		return pageLoader.getSearchBarHtml(userinfo.getTotalItems(), 10000);
111
	}
781 vikas 112
 
793 rajveer 113
	public UserSessionInfo getUserInfo(){
114
		return this.userinfo;
115
	}
2907 rajveer 116
 
117
	@Override
118
	public List<Cookie> getCookies() {
119
		List<Cookie> cookies = new ArrayList<Cookie>();
120
		long userId = userinfo.getUserId();
121
		if(userId != -1){
122
			String newUserinfoCookieValue = UserSessionInfo.getUserinfoCookieValueFromUserSessionInfo(userinfo);
123
			Cookie userinfoCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME); 
124
			if( userinfoCookie == null ||  !newUserinfoCookieValue.equals(userinfoCookie.getValue())){
125
				log.info("Set user session info cookie if it has been changed.");
126
				userinfoCookie = new Cookie(UserInterceptor.USER_INFO_COOKIE_NAME, newUserinfoCookieValue);
127
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
128
				userinfoCookie.setPath("/");
129
				userinfoCookie.setDomain(domainName);
130
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
131
				cookies.add(userinfoCookie);
132
			}
133
			Cookie userCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
2998 rajveer 134
			String encryptedUserId = desEncrypter.encrypt(userId + "");
2907 rajveer 135
			if(userCookie == null || !(encryptedUserId + "").equals(userCookie.getValue())){
136
				userinfoCookie = new Cookie(UserInterceptor.USER_ID_COOKIE_NAME, encryptedUserId);
137
				userinfoCookie.setMaxAge(UserInterceptor.SECONDS_IN_YEAR); // one year
138
				userinfoCookie.setPath("/");
139
				userinfoCookie.setDomain(domainName);
140
				cookiesMap.put(UserInterceptor.USER_INFO_COOKIE_NAME, userinfoCookie);
141
				cookies.add(userinfoCookie);
142
			}
143
		}
144
		return cookies;
145
	}
146
 
147
	public void clearUserCookies(){
148
		Cookie uidCookie = cookiesMap.get(UserInterceptor.USER_ID_COOKIE_NAME);
149
		uidCookie.setDomain(domainName);
150
		uidCookie.setPath("/");
151
		uidCookie.setValue("");
152
		uidCookie.setMaxAge(0);
153
		this.response.addCookie(uidCookie);
154
 
155
		Cookie uicCookie = cookiesMap.get(UserInterceptor.USER_INFO_COOKIE_NAME);
156
		uicCookie.setDomain(domainName);
157
		uicCookie.setPath("/");
158
		uicCookie.setValue("");
159
		uicCookie.setMaxAge(0);
160
		this.response.addCookie(uicCookie);
161
	}
745 chandransh 162
}