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