Subversion Repositories WebE

Rev

Rev 19 | Rev 23 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 19 Rev 20
Line 1... Line 1...
1
package ch.ffhs.webE.action;
1
package ch.ffhs.webE.action;
2
2
3
3
-
 
4
import java.util.Map;
-
 
5
4
import ch.ffhs.webE.dao.UserDAO;
6
import ch.ffhs.webE.dao.UserDAO;
5
import ch.ffhs.webE.dao.UserDAOImpl;
7
import ch.ffhs.webE.dao.UserDAOImpl;
6
import ch.ffhs.webE.domain.User;
8
import ch.ffhs.webE.domain.User;
7
9
-
 
10
import com.opensymphony.xwork2.ActionContext;
8
import com.opensymphony.xwork2.ActionSupport;
11
import com.opensymphony.xwork2.ActionSupport;
9
import com.opensymphony.xwork2.ModelDriven;
12
import com.opensymphony.xwork2.ModelDriven;
10
13
11
public class LoginAction extends ActionSupport implements ModelDriven<User>{
14
public class LoginAction extends ActionSupport implements ModelDriven<User>{
12
       
15
       
13
        private static final long serialVersionUID = 1799753056277211344L;
16
        private static final long serialVersionUID = 1799753056277211344L;
14
        private User user = new User();
17
        private User user = new User();
15
        private UserDAO userDAO = new UserDAOImpl();
18
        private UserDAO userDAO = new UserDAOImpl();
16
       
19
       
17
       
20
        //Form fields
18
        private String userName ;
21
        private String userName ;
19
        private String pw;     
22
        private String pw;     
-
 
23
               
-
 
24
        //Session Object
-
 
25
        Map<String, Object> session = ActionContext.getContext().getSession();
20
       
26
       
-
 
27
21
        public LoginAction() {
28
        public LoginAction() {
22
        }
29
        }
23
       
30
       
24
        public String verifyUser() {
31
        public String doLogin() {
25
               
32
               
26
                //If password or user name are empty, the login fails.
33
                //If password or user name are empty, the login fails.
27
                if("".equals(getUserName()) || "".equals(getPw()) || getUserName() == null || getPw() == null) {
34
                if("".equals(getUserName()) || "".equals(getPw()) || getUserName() == null || getPw() == null) {
28
                        return "failed";
35
                        return "failed";
29
                }
36
                }
30
               
37
               
-
 
38
                String verifiedUser = verifyUser(getUserName(), getPw());
-
 
39
                if(verifiedUser.equals("failed")) {
-
 
40
                        return "failed";
-
 
41
                } else {
-
 
42
                       
-
 
43
                        //Put user name, password into session 
-
 
44
                        session.put("username", getUserName());
-
 
45
                        session.put("pw", getPw());
-
 
46
                        return verifiedUser;
-
 
47
                }
-
 
48
        }
-
 
49
       
-
 
50
        public String doLogout() {
-
 
51
                //TODO: Kill session content for logout 
-
 
52
                return SUCCESS;
-
 
53
        }
-
 
54
       
-
 
55
        /**
-
 
56
         * Verify user credentials
-
 
57
         * @param String username: User name
-
 
58
         * @param String password: Password (hashed)
-
 
59
         * @return
-
 
60
         */
-
 
61
        public String verifyUser(String username, String password) {
-
 
62
                //DB Query
31
                User u = userDAO.searchUsername(getUserName());
63
                User u = userDAO.searchUsername(username);
32
               
64
               
-
 
65
                //User does not exist
33
                if(u == null)
66
                if(u == null)
34
                        return "failed";
67
                        return "failed";
35
               
68
               
-
 
69
                //User password does not match
36
                if(!u.getPassword().equals(getPw()))
70
                if(!u.getPassword().equals(password))
37
                        return "failed";
71
                        return "failed";
38
               
72
               
-
 
73
                //User credentials are fine, check for admin rights
39
                if(u.isAdmin()) {
74
                if(u.isAdmin()) {
40
                        return "admin";
75
                        return "admin";
41
                } else {
76
                } else {
42
                        return "user";
77
                        return "user";
43
                }
78
                }