Subversion Repositories SmartDukaan

Rev

Rev 1891 | Rev 3105 | 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;
1676 ankur.sing 20
 
21
 
1891 ankur.sing 22
@InterceptorRefs({
1941 ankur.sing 23
    @InterceptorRef("defaultStack"),
1891 ankur.sing 24
    @InterceptorRef("login")
25
})
1676 ankur.sing 26
 
1941 ankur.sing 27
public class RegisteredUsersController implements ServletRequestAware, ServletResponseAware, ServletContextAware {
1891 ankur.sing 28
 
1941 ankur.sing 29
    private HttpServletRequest request;
30
    private HttpSession session;
31
    private HttpServletResponse response;
32
    private ServletContext context;
33
 
1676 ankur.sing 34
    private final String authsuccess = "authsuccess";
35
    private String message = "";
36
 
37
    public RegisteredUsersController() {
38
 
39
    }
40
 
41
    public String index() {
1941 ankur.sing 42
        if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {
1891 ankur.sing 43
            return "exception";
1676 ankur.sing 44
        }
1891 ankur.sing 45
        return authsuccess;
1676 ankur.sing 46
    }
47
 
48
    // Handles the POST request (Form Submission)
49
    public String create() {
50
        RegisteredUsersGenerator usersReportGenerator = new RegisteredUsersGenerator();
51
        ByteArrayOutputStream baos = usersReportGenerator.generateRegisteredUsersReport();
52
 
53
        if(baos == null) {
54
            message = "No registered user exists.";;
55
            return authsuccess;
56
        }
57
        // Preparing XLS file for output
1941 ankur.sing 58
        response.setContentType("application/vnd.ms-excel");
59
        response.setHeader("Content-disposition", "inline; filename=registered-users" + ".xls");
1676 ankur.sing 60
        ServletOutputStream sos;
61
        try {
1941 ankur.sing 62
            sos = response.getOutputStream();
1676 ankur.sing 63
            baos.writeTo(sos);
64
            sos.flush();
65
        } catch (IOException e) {
66
            e.printStackTrace();
67
        }
68
        return authsuccess;
69
    }
70
 
71
    public String getMessage() {
72
        return message;
73
    }
1941 ankur.sing 74
 
75
    @Override
76
    public void setServletRequest(HttpServletRequest req) {
77
        this.request = req;
78
        this.session = req.getSession();        
79
    }
80
 
81
    @Override
82
    public void setServletResponse(HttpServletResponse res) {
83
        this.response = res;
84
    }
85
 
86
    @Override
87
    public void setServletContext(ServletContext context) {
88
        this.context = context;
89
    }
90
 
91
    public String getServletContextPath() {
92
        return context.getContextPath();
93
    }
1676 ankur.sing 94
}