]> WPIA git - gigi.git/blob - src/org/cacert/gigi/User.java
Get email of user
[gigi.git] / src / org / cacert / gigi / User.java
1 package org.cacert.gigi;
2
3 import java.sql.PreparedStatement;
4 import java.sql.ResultSet;
5 import java.sql.SQLException;
6 import java.util.Date;
7
8 import org.cacert.gigi.database.DatabaseConnection;
9 import org.cacert.gigi.util.PasswordHash;
10
11 public class User {
12
13         private int id;
14         Name name = new Name(null, null);
15
16         Date dob;
17         String email;
18
19         public User(int id) {
20                 this.id = id;
21                 try {
22                         PreparedStatement ps = DatabaseConnection.getInstance().prepare(
23                                                         "SELECT `fname`, `lname`, `dob`, `email` FROM `users` WHERE id=?");
24                         ps.setInt(1, id);
25                         ResultSet rs = ps.executeQuery();
26                         if (rs.next()) {
27                                 name = new Name(rs.getString(1), rs.getString(2));
28                                 dob = rs.getDate(3);
29                                 email = rs.getString(4);
30                         }
31                         rs.close();
32                 } catch (SQLException e) {
33                         e.printStackTrace();
34                 }
35         }
36         public User() {
37         }
38         public int getId() {
39                 return id;
40         }
41         public String getFname() {
42                 return name.fname;
43         }
44         public String getLname() {
45                 return name.lname;
46         }
47         public String getMname() {
48                 return name.mname;
49         }
50         public Name getName() {
51                 return name;
52         }
53         public void setMname(String mname) {
54                 this.name.mname = mname;
55         }
56         public String getSuffix() {
57                 return name.suffix;
58         }
59         public void setSuffix(String suffix) {
60                 this.name.suffix = suffix;
61         }
62         public Date getDob() {
63                 return dob;
64         }
65         public void setDob(Date dob) {
66                 this.dob = dob;
67         }
68         public String getEmail() {
69                 return email;
70         }
71         public void setEmail(String email) {
72                 this.email = email;
73         }
74         public void setId(int id) {
75                 this.id = id;
76         }
77         public void setFname(String fname) {
78                 this.name.fname = fname;
79         }
80         public void setLname(String lname) {
81                 this.name.lname = lname;
82         }
83         public void insert(String password) throws SQLException {
84                 if (id != 0) {
85                         throw new Error("refusing to insert");
86                 }
87                 PreparedStatement query = DatabaseConnection.getInstance().prepare(
88                                 "insert into `users` set `email`=?, `password`=?, "
89                                                 + "`fname`=?, `mname`=?, `lname`=?, "
90                                                 + "`suffix`=?, `dob`=?, `created`=NOW(), locked=0");
91                 query.setString(1, email);
92                 query.setString(2, PasswordHash.hash(password));
93                 query.setString(3, name.fname);
94                 query.setString(4, name.mname);
95                 query.setString(5, name.lname);
96                 query.setString(6, name.suffix);
97                 query.setDate(7, new java.sql.Date(dob.getTime()));
98                 query.execute();
99                 id = DatabaseConnection.lastInsertId(query);
100                 System.out.println("Inserted: " + id);
101         }
102
103 }