Rev 19 |
Rev 23 |
Go to most recent revision |
View as "text/plain" |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
1
package ch.ffhs.webE.action;
import java.util.Map;
import ch.ffhs.webE.dao.UserDAO;
import ch.ffhs.webE.dao.UserDAOImpl;
import ch.ffhs.webE.domain.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction
extends ActionSupport
implements ModelDriven
<User
>{
private static final long serialVersionUID = 1799753056277211344L
;
private User user =
new User
();
private UserDAO userDAO =
new UserDAOImpl
();
//Form fields
private String userName
;
private String pw
;
//Session Object
Map<String,
Object> session = ActionContext.
getContext().
getSession();
public LoginAction
() {
}
public String doLogin
() {
//If password or user name are empty, the login fails.
if("".
equals(getUserName
()) ||
"".
equals(getPw
()) || getUserName
() ==
null || getPw
() ==
null) {
return "failed";
}
String verifiedUser = verifyUser
(getUserName
(), getPw
());
if(verifiedUser.
equals("failed")) {
return "failed";
} else {
//Put user name, password into session
session.
put("username", getUserName
());
session.
put("pw", getPw
());
return verifiedUser
;
}
}
public String doLogout
() {
//TODO: Kill session content for logout
return SUCCESS
;
}
/**
* Verify user credentials
* @param String username: User name
* @param String password: Password (hashed)
* @return
*/
public String verifyUser
(String username,
String password
) {
//DB Query
User u = userDAO.
searchUsername(username
);
//User does not exist
if(u ==
null)
return "failed";
//User password does not match
if(!u.
getPassword().
equals(password
))
return "failed";
//User credentials are fine, check for admin rights
if(u.
isAdmin()) {
return "admin";
} else {
return "user";
}
}
public String getUserName
() {
return userName
;
}
public void setUserName
(String userName
) {
this.
userName = userName
;
}
public String getPw
() {
return pw
;
}
public void setPw
(String pw
) {
this.
pw = pw
;
}
@
Override
public User getModel
() {
return user
;
}
}