SSD added
[staff/due1/sed-hs15-srs-purple.git] / src / main / java / ch / bfh / ti / srs / core / User.java
CommitLineData
0a2e269c
M
1package ch.bfh.ti.srs.core;
2
3public class User {
9ca2608d 4
0a2e269c
M
5 private final String userName;
6 private String password;
9ca2608d
M
7 private String mail;
8 private String name;
9 private String lastname;
10
11
12 public User(String userName, String password){
13 this.userName = userName;
14 try {
15 this.password = Password.getSaltedHash(password);
16 } catch (Exception e) {
b667311e 17 // TODO: Bad programming style (due1). Discuss.
20c8b7fb
D
18 // Lösung:
19 // Logger verwenden da konsole auf server somit würde Meldung User nicht sehen.
20 // password bleibt null!!?
21 // wird anschliessend fortgesetzt mit password = null!
22 // Lösung:
23 // - User Objekt darf nicht erstellt werden!!
24 // - exception muss weiter geworfen werden : throws except.
25 // - Logger verwenden!
26
b667311e 27 System.err.println("Fehler beim Erstellen des Hashes");
9ca2608d 28 }
0a2e269c 29 }
9ca2608d 30
0a2e269c
M
31 public String getUserName(){
32 return userName;
33 }
9ca2608d 34
0a2e269c 35 public boolean checkPassword(String password){
9ca2608d
M
36 boolean passwordCorrect = false;
37 try {
38 passwordCorrect = Password.check(password, this.password);
39 } catch (Exception e) {
40 System.err.println("Fehler beim Prüfen des Passwortes");
41 }
42 return passwordCorrect;
43 }
44
45 public boolean setMail(String mail){
cb599a4a
M
46 if(mail != null){
47 if(isValidEmailAddress(mail)){
48 this.mail = mail;
49 return true;
50 }
9ca2608d
M
51 }
52 return false;
53 }
54
55 public String getMail(){
56 return mail;
57 }
58
59 public void changePassword(String newPassword){
60 try {
61 this.password = Password.getSaltedHash(newPassword);
62 } catch (Exception e) {
63 System.err.println("Fehler beim erstellen des Hashes");
64 }
65 }
66
67 public String getName() {
68 return name;
69 }
70
71 public void setName(String name) {
72 this.name = name;
73 }
74
75 public String getLastname() {
76 return lastname;
77 }
78
4481dffa 79 public void setLastname(String lastname) {
9ca2608d
M
80 this.lastname = lastname;
81 }
82
83 private boolean isValidEmailAddress(String mail){
84 String ePattern = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$";
85 java.util.regex.Pattern p = java.util.regex.Pattern.compile(ePattern);
86 java.util.regex.Matcher m = p.matcher(mail);
87 return m.matches();
0a2e269c
M
88 }
89}