comments for User improvment
[staff/due1/sed-hs15-srs-purple.git] / src / main / java / ch / bfh / ti / srs / core / User.java
1 package ch.bfh.ti.srs.core;
2
3 public class User {
4
5 private final String userName;
6 private String password;
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) {
17 // TODO: Bad programming style (due1). Discuss.
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
27 System.err.println("Fehler beim Erstellen des Hashes");
28 }
29 }
30
31 public String getUserName(){
32 return userName;
33 }
34
35 public boolean checkPassword(String password){
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){
46 if(isValidEmailAddress(mail)){
47 this.mail = mail;
48 return true;
49 }
50 return false;
51 }
52
53 public String getMail(){
54 return mail;
55 }
56
57 public void changePassword(String newPassword){
58 try {
59 this.password = Password.getSaltedHash(newPassword);
60 } catch (Exception e) {
61 System.err.println("Fehler beim erstellen des Hashes");
62 }
63 }
64
65 public String getName() {
66 return name;
67 }
68
69 public void setName(String name) {
70 this.name = name;
71 }
72
73 public String getLastname() {
74 return lastname;
75 }
76
77 public void setLastname(String lastname) {
78 this.lastname = lastname;
79 }
80
81 private boolean isValidEmailAddress(String mail){
82 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,}))$";
83 java.util.regex.Pattern p = java.util.regex.Pattern.compile(ePattern);
84 java.util.regex.Matcher m = p.matcher(mail);
85 return m.matches();
86 }
87 }