Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
1676 ankur.sing 1
package in.shop2020.support.controllers;
2
 
3
import in.shop2020.support.services.RegisteredUsersGenerator;
1941 ankur.sing 4
import in.shop2020.support.utils.ReportsUtils;
1676 ankur.sing 5
 
6
import java.io.ByteArrayOutputStream;
7
import java.io.IOException;
8
 
1941 ankur.sing 9
import javax.servlet.ServletContext;
1676 ankur.sing 10
import javax.servlet.ServletOutputStream;
1941 ankur.sing 11
import javax.servlet.http.HttpServletRequest;
12
import javax.servlet.http.HttpServletResponse;
13
import javax.servlet.http.HttpSession;
1676 ankur.sing 14
 
1891 ankur.sing 15
import org.apache.struts2.convention.annotation.InterceptorRef;
16
import org.apache.struts2.convention.annotation.InterceptorRefs;
1941 ankur.sing 17
import org.apache.struts2.interceptor.ServletRequestAware;
18
import org.apache.struts2.interceptor.ServletResponseAware;
19
import org.apache.struts2.util.ServletContextAware;
3105 chandransh 20
import org.slf4j.Logger;
21
import org.slf4j.LoggerFactory;
1676 ankur.sing 22
 
23
 
1891 ankur.sing 24
@InterceptorRefs({
1941 ankur.sing 25
    @InterceptorRef("defaultStack"),
1891 ankur.sing 26
    @InterceptorRef("login")
27
})
1676 ankur.sing 28
 
1941 ankur.sing 29
public class RegisteredUsersController implements ServletRequestAware, ServletResponseAware, ServletContextAware {
3105 chandransh 30
 
31
    private static Logger logger = LoggerFactory.getLogger(RegisteredUsersController.class);
1891 ankur.sing 32
 
1941 ankur.sing 33
    private HttpServletRequest request;
34
    private HttpSession session;
35
    private HttpServletResponse response;
36
    private ServletContext context;
37
 
1676 ankur.sing 38
    private final String authsuccess = "authsuccess";
39
    private String message = "";
40
 
41
    public RegisteredUsersController() {
42
 
43
    }
44
 
45
    public String index() {
1941 ankur.sing 46
        if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {
1891 ankur.sing 47
            return "exception";
1676 ankur.sing 48
        }
1891 ankur.sing 49
        return authsuccess;
1676 ankur.sing 50
    }
51
 
52
    // Handles the POST request (Form Submission)
53
    public String create() {
54
        RegisteredUsersGenerator usersReportGenerator = new RegisteredUsersGenerator();
55
        ByteArrayOutputStream baos = usersReportGenerator.generateRegisteredUsersReport();
56
 
57
        if(baos == null) {
58
            message = "No registered user exists.";;
59
            return authsuccess;
60
        }
61
        // Preparing XLS file for output
1941 ankur.sing 62
        response.setContentType("application/vnd.ms-excel");
63
        response.setHeader("Content-disposition", "inline; filename=registered-users" + ".xls");
1676 ankur.sing 64
        ServletOutputStream sos;
65
        try {
1941 ankur.sing 66
            sos = response.getOutputStream();
1676 ankur.sing 67
            baos.writeTo(sos);
68
            sos.flush();
69
        } catch (IOException e) {
3105 chandransh 70
            logger.error("Error streaming registered users report");
1676 ankur.sing 71
        }
72
        return authsuccess;
73
    }
74
 
75
    public String getMessage() {
76
        return message;
77
    }
1941 ankur.sing 78
 
79
    @Override
80
    public void setServletRequest(HttpServletRequest req) {
81
        this.request = req;
82
        this.session = req.getSession();        
83
    }
84
 
85
    @Override
86
    public void setServletResponse(HttpServletResponse res) {
87
        this.response = res;
88
    }
89
 
90
    @Override
91
    public void setServletContext(ServletContext context) {
92
        this.context = context;
93
    }
94
 
95
    public String getServletContextPath() {
96
        return context.getContextPath();
97
    }
1676 ankur.sing 98
}