89 lines
2.5 KiB
Java
89 lines
2.5 KiB
Java
package de.hsel.itech.jsf;
|
|
|
|
import de.hsel.itech.db.Database;
|
|
import de.hsel.itech.db.pojo.User;
|
|
import lombok.Getter;
|
|
import lombok.Setter;
|
|
|
|
import javax.faces.application.FacesMessage;
|
|
import javax.faces.bean.ManagedBean;
|
|
import javax.faces.bean.SessionScoped;
|
|
import javax.faces.context.FacesContext;
|
|
import javax.validation.constraints.Pattern;
|
|
import javax.validation.constraints.Size;
|
|
import java.io.Serializable;
|
|
|
|
@ManagedBean
|
|
@SessionScoped
|
|
public class UserBean implements Serializable {
|
|
|
|
@Getter
|
|
@Setter
|
|
private User user = new User();
|
|
|
|
@Getter
|
|
@Setter
|
|
@Size(min = 1)
|
|
private String username;
|
|
|
|
@Getter
|
|
@Setter
|
|
@Pattern(regexp = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])")
|
|
private String email;
|
|
|
|
@Getter
|
|
@Setter
|
|
private String password;
|
|
|
|
@Getter
|
|
private boolean loggedIn = false;
|
|
|
|
@Getter
|
|
private boolean error = false;
|
|
|
|
public String login() {
|
|
Database db = Database.getInstance();
|
|
User user = db.user().get(username);
|
|
|
|
if (user == null) {
|
|
error = true;
|
|
return "";
|
|
}
|
|
|
|
if (db.user().verify(user, password)) {
|
|
loggedIn = true;
|
|
setUser(user);
|
|
password = null;
|
|
username = null;
|
|
return "index.xhtml";
|
|
}
|
|
error = true;
|
|
return "";
|
|
}
|
|
|
|
public String logout() {
|
|
user = null;
|
|
loggedIn = false;
|
|
return "index.html";
|
|
}
|
|
|
|
public String register() {
|
|
Database db = Database.getInstance();
|
|
|
|
if(username != null && email != null && password != null) {
|
|
if(db.user().get(username) != null) {
|
|
FacesContext.getCurrentInstance().addMessage("register:username", new FacesMessage("Dieser Nutzername ist bereits vergeben"));
|
|
return "register.xhtml";
|
|
}
|
|
User user = new User(email, username, password, (short) 1);
|
|
db.user().insert(user);
|
|
email = null;
|
|
username = null;
|
|
password = null;
|
|
return "login.xhtml";
|
|
}
|
|
|
|
return "";
|
|
}
|
|
|
|
} |