]> WPIA git - gigi.git/blob - src/org/cacert/gigi/User.java
Finish up signup process (so that it's usable except "verify")
[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` 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                         }
32                         rs.close();
33                 } catch (SQLException e) {
34                         e.printStackTrace();
35                 }
36         }
37         public User() {
38         }
39         public int getId() {
40                 return id;
41         }
42         public String getFname() {
43                 return fname;
44         }
45         public String getLname() {
46                 return lname;
47         }
48         public String getMname() {
49                 return mname;
50         }
51         public void setMname(String mname) {
52                 this.mname = mname;
53         }
54         public String getSuffix() {
55                 return suffix;
56         }
57         public void setSuffix(String suffix) {
58                 this.suffix = suffix;
59         }
60         public Date getDob() {
61                 return dob;
62         }
63         public void setDob(Date dob) {
64                 this.dob = dob;
65         }
66         public String getEmail() {
67                 return email;
68         }
69         public void setEmail(String email) {
70                 this.email = email;
71         }
72         public void setId(int id) {
73                 this.id = id;
74         }
75         public void setFname(String fname) {
76                 this.fname = fname;
77         }
78         public void setLname(String lname) {
79                 this.lname = lname;
80         }
81         public void insert(String password) throws SQLException {
82                 if (id != 0) {
83                         throw new Error("refusing to insert");
84                 }
85                 PreparedStatement query = DatabaseConnection.getInstance().prepare(
86                                 "insert into `users` set `email`=?, `password`=?, "
87                                                 + "`fname`=?, `mname`=?, `lname`=?, "
88                                                 + "`suffix`=?, `dob`=?, `created`=NOW(),"
89                                                 + " `orgadmin`=0, `adadmin`=0, `locked`=0,"
90                                                 + " `uniqueID`=0, `otphash`='', `otppin`=0");
91                 query.setString(1, email);
92                 query.setString(2, PasswordHash.hash(password));
93                 query.setString(3, fname);
94                 query.setString(4, mname);
95                 query.setString(5, lname);
96                 query.setString(6, 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 }