Subversion Repositories WebE

Rev

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

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