KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > application > web > talk > plugin > UserTable


1 package com.quikj.application.web.talk.plugin;
2
3 import com.quikj.server.framework.*;
4
5 import java.sql.*;
6
7 public class UserTable
8 {
9     // database user table name constant
10
public static final String JavaDoc USER_TABLE_NAME = "user_tbl";
11     
12     // database user table column name constants
13
public static final String JavaDoc USERNAME = "userid";
14     public static final String JavaDoc PASSWORD = "password";
15     public static final String JavaDoc DOMAIN = "domain";
16     public static final String JavaDoc FLAGS = "flags";
17     public static final String JavaDoc FULLNAME = "fullname";
18     public static final String JavaDoc ADDRESS = "address";
19     public static final String JavaDoc ADDITIONAL_INFO = "addnl_info";
20     public static final String JavaDoc UNAVAIL_XFER = "unavail_xferto";
21     public static final String JavaDoc GATEKEEPER = "gatekeeper";
22         
23     
24     public static Statement getQueryStatement(Connection c, String JavaDoc username,
25     String JavaDoc password) throws SQLException
26     {
27         PreparedStatement ps = c.prepareStatement("select "
28         + FULLNAME
29         + ", "
30         + ADDRESS
31         + ", "
32         + ADDITIONAL_INFO
33         + ", "
34         + UNAVAIL_XFER
35         + ", "
36         + GATEKEEPER
37         + " from "
38         + USER_TABLE_NAME
39         + " where "
40         + USERNAME
41         + " = ? and "
42         + PASSWORD
43         + " = password(?)");
44         
45         ps.setString(1, username);
46         ps.setString(2, password);
47         
48         return ps;
49     }
50     
51     public static Statement getQueryStatement(Connection c, String JavaDoc username)
52     throws SQLException
53     {
54         PreparedStatement ps = c.prepareStatement("select "
55         + FULLNAME
56         + ", "
57         + ADDRESS
58         + ", "
59         + ADDITIONAL_INFO
60         + ", "
61         + UNAVAIL_XFER
62         + ", "
63         + GATEKEEPER
64         + " from "
65         + USER_TABLE_NAME
66         + " where "
67         + USERNAME
68         + " = ?");
69         
70         ps.setString(1, username);
71         
72         return ps;
73     }
74     
75     public static void processQueryResult(UserElement userdata,
76     ResultSet result)
77     throws SQLException
78     {
79         userdata.setFullName(result.getString(1));
80         userdata.setAddress(result.getString(2));
81         userdata.setAdditionalInfo(result.getString(3));
82         userdata.setUnavailXferTo(result.getString(4));
83         userdata.setGatekeeper(result.getString(5));
84     }
85     
86     public static Statement getTransferInfoQueryStatement(Connection c, String JavaDoc username)
87     throws SQLException
88     {
89         PreparedStatement ps = c.prepareStatement("select t1."
90         + USERNAME
91         + ", t1."
92         + FULLNAME
93         + ", t1."
94         + ADDRESS
95         + ", t1."
96         + ADDITIONAL_INFO
97         + ", t1."
98         + UNAVAIL_XFER
99         + ", t1."
100         + GATEKEEPER
101         + " from "
102         + USER_TABLE_NAME
103         + " as t1 left join "
104         + USER_TABLE_NAME
105         + " as t2 on t1."
106         + USERNAME
107         + " = t2."
108         + UNAVAIL_XFER
109         + " where t2."
110         + USERNAME
111         + " = ?");
112         
113         ps.setString(1, username);
114         
115         return ps;
116     }
117     
118     public static void processTransferInfoQueryResult(UserElement userdata,
119     ResultSet result)
120     throws SQLException
121     {
122         userdata.setName(result.getString(1));
123         userdata.setFullName(result.getString(2));
124         userdata.setAddress(result.getString(3));
125         userdata.setAdditionalInfo(result.getString(4));
126         userdata.setUnavailXferTo(result.getString(5));
127         userdata.setGatekeeper(result.getString(6));
128     }
129     
130     
131     public static String JavaDoc getListUserQueryStatement()
132     {
133         return ("select "
134         + USERNAME
135         + " from "
136         + USER_TABLE_NAME
137         + ';');
138     }
139     
140     public static String JavaDoc[] processListUserQueryResult(ResultSet result)
141     throws SQLException
142     {
143         return GroupTable.processStringsResult(result);
144     }
145     
146
147     public static Statement[] getUserElementQueryStatements(Connection c, String JavaDoc username,
148     String JavaDoc password) throws SQLException
149     {
150         Statement[] sql_statements = new Statement[3];
151         
152         // query for basic user data
153
sql_statements[0] = getQueryStatement(c, username, password);
154         
155         // query names of groups owned by this user
156
PreparedStatement ps = c.prepareStatement("select "
157         + GroupTable.GROUPNAME
158         + " from "
159         + GroupTable.GROUP_OWNER_TABLE_NAME
160         + " where "
161         + GroupTable.USERNAME
162         + " = ?");
163         
164         ps.setString(1, username);
165         
166         sql_statements[1] = ps;
167         
168         
169         // query names of groups that this user belongs to
170
ps = c.prepareStatement("select "
171         + GroupTable.GROUPNAME
172         + " from "
173         + GroupTable.GROUP_MEMBER_TABLE_NAME
174         + " where "
175         + GroupTable.USERNAME
176         + " = ?");
177         
178         ps.setString(1, username);
179         
180         sql_statements[2] = ps;
181         
182         return sql_statements;
183     }
184     
185     public static Statement[] getUserElementQueryStatements(Connection c, String JavaDoc username)
186      throws SQLException
187     {
188         Statement[] sql_statements = new Statement[3];
189         
190         // query for basic user data
191
sql_statements[0] = getQueryStatement(c, username);
192         //System.out.println ("***" + sql_statements[0]);
193

194         // query names of groups owned by this user
195
PreparedStatement ps = c.prepareStatement("select "
196         + GroupTable.GROUPNAME
197         + " from "
198         + GroupTable.GROUP_OWNER_TABLE_NAME
199         + " where "
200         + GroupTable.USERNAME
201         + " = ?");
202         
203         ps.setString(1, username);
204         
205         sql_statements[1] = ps;
206         //System.out.println ("***" + sql_statements[1]);
207

208         // query names of groups that this user belongs to
209
ps = c.prepareStatement("select "
210         + GroupTable.GROUPNAME
211         + " from "
212         + GroupTable.GROUP_MEMBER_TABLE_NAME
213         + " where "
214         + GroupTable.USERNAME
215         + " = ?");
216         
217         ps.setString(1, username);
218         
219         sql_statements[2] = ps;
220         //System.out.println ("***" + sql_statements[2]);
221

222         return sql_statements;
223     }
224     
225     public static void processUserElementQueryResult(UserElement userdata,
226     ResultSet [] result)
227     throws SQLException
228     {
229         // process basic user data result
230
processQueryResult(userdata, result[0]);
231         
232         // process owned groups
233
if (result.length > 1)
234         {
235             if (result[1] != null)
236             {
237                 while (result[1].next() == true)
238                 {
239                     String JavaDoc groupname = result[1].getString(1);
240                     if (userdata.addOwnsGroup(groupname) == false)
241                     {
242                         AceLogger.Instance().log(AceLogger.ERROR,
243                         AceLogger.SYSTEM_LOG,
244                         userdata.getName()
245                         + " UserTable.processUserElementQueryResult() -- Couldn't add owned group "
246                         + groupname
247                         + " to UserElement, probably duplicate error.");
248                     }
249                 }
250             }
251         }
252         
253         // process belongs to groups
254
if (result.length > 2)
255         {
256             if (result[2] != null)
257             {
258                 while (result[2].next() == true)
259                 {
260                     String JavaDoc groupname = result[2].getString(1);
261                     if (userdata.addBelongsToGroup(groupname) == false)
262                     {
263                         AceLogger.Instance().log(AceLogger.ERROR,
264                         AceLogger.SYSTEM_LOG,
265                         userdata.getName()
266                         + " UserTable.processUserElementQueryResult() -- Couldn't add belongs to group "
267                         + groupname
268                         + " to UserElement, probably duplicate error.");
269                     }
270                 }
271             }
272         }
273     }
274         
275     public static Statement getChangePasswordStatement(Connection c, String JavaDoc username,
276     String JavaDoc old_password, String JavaDoc new_password) throws SQLException
277     {
278         PreparedStatement ps = c.prepareStatement("update "
279         + USER_TABLE_NAME
280         + " set "
281         + PASSWORD
282         + "=password(?)"
283         + " where "
284         + USERNAME
285         + " = ? and "
286         + PASSWORD
287         + "=password(?)");
288         
289         ps.setString(1, new_password);
290         ps.setString(2, username);
291         ps.setString(3, old_password);
292         
293         return ps;
294     }
295     
296     
297 }
298
299
Popular Tags