Subversion Repositories WebE

Rev

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

Rev 23 Rev 26
Line 1... Line 1...
1
package ch.ffhs.webE.action;
1
package ch.ffhs.webE.action;
2
2
3
-
 
4
import java.util.Map;
3
import java.util.Map;
5
4
6
import ch.ffhs.webE.dao.UserDAO;
5
import ch.ffhs.webE.dao.UserDAO;
7
import ch.ffhs.webE.dao.UserDAOImpl;
6
import ch.ffhs.webE.dao.UserDAOImpl;
8
import ch.ffhs.webE.domain.User;
7
import ch.ffhs.webE.domain.User;
9
8
10
import com.opensymphony.xwork2.ActionContext;
9
import com.opensymphony.xwork2.ActionContext;
11
import com.opensymphony.xwork2.ActionSupport;
10
import com.opensymphony.xwork2.ActionSupport;
12
import com.opensymphony.xwork2.ModelDriven;
11
import com.opensymphony.xwork2.ModelDriven;
13
12
14
public class LoginAction extends ActionSupport implements ModelDriven<User>{
13
public class LoginAction extends ActionSupport implements ModelDriven<User>
-
 
14
{
15
       
15
16
        private static final long serialVersionUID = 1799753056277211344L;
16
    private static final long serialVersionUID = 1799753056277211344L;
17
        private User user = new User();
17
    private User user = new User();
18
        private UserDAO userDAO = new UserDAOImpl();
18
    private UserDAO userDAO = new UserDAOImpl();
19
       
19
20
        //Form fields
20
    // Form fields
21
        private String userName ;
21
    private String userName;
22
        private String pw;     
22
    private String pw;
23
               
23
24
        //Session Object
24
    // Session Object
25
        Map<String, Object> session = ActionContext.getContext().getSession();
25
    Map<String, Object> session = ActionContext.getContext().getSession();
26
       
-
 
27
26
28
        public LoginAction() {
27
    public LoginAction()
-
 
28
    {
29
        }
29
    }
30
       
30
31
        public String doLogin() {
31
    public String doLogin()
-
 
32
    {
32
               
33
33
                //If password or user name are empty, the login fails.
34
        // If password or user name are empty, the login fails.
-
 
35
        if ("".equals(getUserName()) || "".equals(getPw())
34
                if("".equals(getUserName()) || "".equals(getPw()) || getUserName() == null || getPw() == null) {
36
                || getUserName() == null || getPw() == null)
-
 
37
        {
35
                        return ERROR;
38
            return ERROR;
36
                }
39
        }
37
               
40
38
                String verifiedUser = verifyUser(getUserName(), getPw());
41
        String verifiedUser = verifyUser(getUserName(), getPw());
39
                if(verifiedUser.equals("failed")) {
42
        if (verifiedUser.equals("failed"))
-
 
43
        {
40
                        return ERROR;
44
            return ERROR;
-
 
45
        }
-
 
46
        else
41
                } else {
47
        {
42
                       
48
43
                        //Put user name, password into session 
49
            // Put user name, password into session
44
                        session.put("username", getUserName());
50
            session.put("username", getUserName());
45
                        session.put("pw", getPw());
51
            session.put("pw", getPw());
46
                        return verifiedUser;
52
            return verifiedUser;
47
                }
53
        }
48
        }
54
    }
49
       
55
50
        public String doLogout() {
56
    public String doLogout()
-
 
57
    {
51
                //TODO: Kill session content for logout 
58
        // TODO: Kill session content for logout
52
                return SUCCESS;
59
        return SUCCESS;
53
        }
60
    }
54
       
61
55
        /**
62
    /**
56
         * Verify user credentials
63
     * Verify user credentials
-
 
64
     *
-
 
65
     * @param String
57
         * @param String username: User name
66
     *            username: User name
-
 
67
     * @param String
58
         * @param String password: Password (hashed)
68
     *            password: Password (hashed)
59
         * @return
69
     * @return
60
         */
70
     */
61
        public String verifyUser(String username, String password) {
71
    public String verifyUser(String username, String password)
-
 
72
    {
62
                //DB Query
73
        // DB Query
63
                User u = userDAO.searchUsername(username);
74
        User u = userDAO.searchUsername(username);
64
               
75
65
                //User does not exist
76
        // User does not exist
66
                if(u == null)
77
        if (u == null)
67
                        return ERROR;
78
            return ERROR;
68
               
79
69
                //User password does not match
80
        // User password does not match
70
                if(!u.getPassword().equals(password))
81
        if (!u.getPassword().equals(password))
71
                        return ERROR;
82
            return ERROR;
72
               
83
73
                //User credentials are fine, check for admin rights
84
        // User credentials are fine, check for admin rights
74
                if(u.isAdmin()) {
85
        if (u.isAdmin())
-
 
86
        {
75
                        return "admin";
87
            return "admin";
-
 
88
        }
-
 
89
        else
76
                } else {
90
        {
77
                        return "user";
91
            return "user";
78
                }
92
        }
79
        }
93
    }
80
       
94
81
        public String getUserName() {
95
    public String getUserName()
-
 
96
    {
82
                return userName;
97
        return userName;
83
        }
98
    }
84
99
85
        public void setUserName(String userName) {
100
    public void setUserName(String userName)
-
 
101
    {
86
                this.userName = userName;
102
        this.userName = userName;
87
        }
103
    }
88
       
104
89
        public String getPw() {
105
    public String getPw()
-
 
106
    {
90
                return pw;
107
        return pw;
91
        }
108
    }
92
109
93
        public void setPw(String pw) {
110
    public void setPw(String pw)
-
 
111
    {
94
                this.pw = pw;
112
        this.pw = pw;
95
        }
113
    }
96
114
97
        @Override
115
    @Override
98
        public User getModel() {
116
    public User getModel()
-
 
117
    {
99
                return user;
118
        return user;
100
        }
119
    }
101
}
120
}