Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
1891 ankur.sing 1
package in.shop2020.support.controllers;
2
 
1941 ankur.sing 3
import in.shop2020.support.utils.ReportsUtils;
1891 ankur.sing 4
import in.shop2020.thrift.clients.HelperServiceClient;
5
import in.shop2020.utils.Report;
6
import in.shop2020.utils.ReportUser;
7
 
8
import java.util.List;
9
 
10
import javax.servlet.ServletContext;
11
import javax.servlet.http.HttpServletRequest;
12
import javax.servlet.http.HttpServletResponse;
13
import javax.servlet.http.HttpSession;
14
 
15
import org.apache.struts2.interceptor.ServletRequestAware;
16
import org.apache.struts2.interceptor.ServletResponseAware;
17
import org.apache.struts2.util.ServletContextAware;
18
 
19
public class ReportsController implements ServletResponseAware, ServletRequestAware, ServletContextAware {
20
 
21
    private HttpServletRequest request;
22
    private HttpServletResponse response;
23
    private HttpSession session;
24
    private ServletContext context;
25
 
26
    private String errorMsg = "";
27
    private final String authsuccess = "authsuccess";
28
    private final String authfail = "authfail";
29
    private List<Report> reports;
30
 
31
    private HelperServiceClient hsc;
32
    private in.shop2020.utils.HelperService.Client client;
33
 
34
    private long role;
1941 ankur.sing 35
    //private static final String USER_NAME = "username", PASSWORD = "password", ROLE = "role";
1891 ankur.sing 36
 
37
    public ReportsController() {
38
        try {
39
            hsc = new HelperServiceClient();
40
            client = hsc.getClient();
41
        } catch (Exception e) {
42
            e.printStackTrace();
43
        }
44
    }
45
 
46
    @Override
47
    public void setServletRequest(HttpServletRequest req) {
48
        this.request = req;
49
        this.session = req.getSession();
50
    }
51
 
52
    public HttpServletRequest getServletRequest() {
53
        return request;
54
    }
55
 
56
    @Override
57
    public void setServletResponse(HttpServletResponse res) {
58
        this.response = res;
59
    }
60
 
61
    public HttpServletResponse getServletResponse() {
62
        return response;
63
    }
64
 
65
    @Override
66
    public void setServletContext(ServletContext context) {
67
        this.context = context;
68
    }
69
 
70
    public String getServletContextPath() {
71
        return context.getContextPath();
72
    }
73
 
74
    public String index() {
75
        if (getSessionUserName() == null) {
76
            return authfail;
77
        } else {
1941 ankur.sing 78
            if(reports == null) {
79
                reports = ReportsUtils.getReports((Long)session.getAttribute(ReportsUtils.ROLE));
80
            }
81
            //loadReports();
1891 ankur.sing 82
            return authsuccess;
83
        }
84
    }
85
 
1941 ankur.sing 86
    /*public boolean canAccessReport() {
1891 ankur.sing 87
        String reportPath = request.getServletPath();
88
        reportPath = reportPath.substring(1, reportPath.length());
89
        if(reports == null) {
90
            loadReports();
91
        }
92
        for(Report r : reports) {
93
            if(r.getController().equals(reportPath))
94
                return true;
95
        }
96
        return false;
97
    }
98
 
99
    public void loadReports() {
100
        try {
101
            reports = client.getReports((Long)session.getAttribute(ROLE));
102
        } catch (TException e) {
103
            e.printStackTrace();
104
        }
1941 ankur.sing 105
    }*/
1891 ankur.sing 106
 
107
    // Handles the POST request (Form Submission)
108
    public String create() {
1941 ankur.sing 109
        String username = request.getParameter(ReportsUtils.USER_NAME);
110
        String password = request.getParameter(ReportsUtils.PASSWORD);
1891 ankur.sing 111
        if (username != null && password != null) {
112
            try {
113
                ReportUser user = client.authenticateReportUser(username, password);
114
                role = user.getRole();
1941 ankur.sing 115
                session.setAttribute(ReportsUtils.USER_NAME, user.getUsername());
116
                session.setAttribute(ReportsUtils.ROLE, role);
117
                //loadReports();
118
                reports = ReportsUtils.getReports(role);
1891 ankur.sing 119
                return authsuccess;
120
            } catch (Exception e) {
121
                e.printStackTrace();
122
                errorMsg = "Invalid Username or Password. Please try again...";
123
                return authfail;
124
            }
125
        }
126
        if (getSessionUserName() == null) {
127
            return authfail;
128
        }
129
        return authsuccess;
130
    }
131
 
132
    public String getErrorMsg() {
133
        return errorMsg;
134
    }
135
 
136
    public String getSessionUserName() {
1941 ankur.sing 137
        return (String) session.getAttribute(ReportsUtils.USER_NAME);
1891 ankur.sing 138
    }
139
 
140
    public List<Report> getReports() {
141
        return reports;
142
    }
143
 
144
    public String returnLoginFail() {
145
        return authfail;
146
    }
147
 
148
    public boolean isLoggedIn() {
1941 ankur.sing 149
        if (session.getAttribute(ReportsUtils.USER_NAME) != null) {
1891 ankur.sing 150
            return true;
151
        }
152
        return false;
153
    }
154
 
155
    public void setUserAsLogout() {
1941 ankur.sing 156
        session.setAttribute(ReportsUtils.USER_NAME, null);
157
        session.setAttribute(ReportsUtils.ROLE, null);
1891 ankur.sing 158
    }
159
}