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 public static final String USER_TABLE_NAME = "user_tbl"; 11 12 public static final String USERNAME = "userid"; 14 public static final String PASSWORD = "password"; 15 public static final String DOMAIN = "domain"; 16 public static final String FLAGS = "flags"; 17 public static final String FULLNAME = "fullname"; 18 public static final String ADDRESS = "address"; 19 public static final String ADDITIONAL_INFO = "addnl_info"; 20 public static final String UNAVAIL_XFER = "unavail_xferto"; 21 public static final String GATEKEEPER = "gatekeeper"; 22 23 24 public static Statement getQueryStatement(Connection c, String username, 25 String 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 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 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 getListUserQueryStatement() 132 { 133 return ("select " 134 + USERNAME 135 + " from " 136 + USER_TABLE_NAME 137 + ';'); 138 } 139 140 public static String [] processListUserQueryResult(ResultSet result) 141 throws SQLException 142 { 143 return GroupTable.processStringsResult(result); 144 } 145 146 147 public static Statement[] getUserElementQueryStatements(Connection c, String username, 148 String password) throws SQLException 149 { 150 Statement[] sql_statements = new Statement[3]; 151 152 sql_statements[0] = getQueryStatement(c, username, password); 154 155 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 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 username) 186 throws SQLException 187 { 188 Statement[] sql_statements = new Statement[3]; 189 190 sql_statements[0] = getQueryStatement(c, username); 192 194 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 208 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 222 return sql_statements; 223 } 224 225 public static void processUserElementQueryResult(UserElement userdata, 226 ResultSet [] result) 227 throws SQLException 228 { 229 processQueryResult(userdata, result[0]); 231 232 if (result.length > 1) 234 { 235 if (result[1] != null) 236 { 237 while (result[1].next() == true) 238 { 239 String 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 if (result.length > 2) 255 { 256 if (result[2] != null) 257 { 258 while (result[2].next() == true) 259 { 260 String 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 username, 276 String old_password, String 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 |