Changeset 28233 for main/trunk/greenstone3/src/java/org
- Timestamp:
- 2013-09-06T11:17:55+12:00 (11 years ago)
- Location:
- main/trunk/greenstone3/src/java/org/greenstone/gsdl3
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/LibraryServlet.java
r27805 r28233 912 912 HashMap<String, Serializable> responseParams = GSXML.extractParams(responseParamList, true); 913 913 String groups = (String) responseParams.get(GSXML.GROUPS_ATT); 914 String editEnabled = (String) responseParams.get("editEnabled"); 914 915 915 916 userInformation.setAttribute(GSXML.GROUPS_ATT, groups); 917 userInformation.setAttribute("editEnabled", (editEnabled != null) ? editEnabled : "false"); 916 918 xml_request.appendChild(userInformation); 917 919 } -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/Authentication.java
r28218 r28233 127 127 protected static final String AUTHENTICATION_SERVICE = "Authentication"; 128 128 protected static final String GET_USER_INFORMATION_SERVICE = "GetUserInformation"; 129 protected static final String CHANGE_USER_EDIT_MODE_SERVICE = "ChangeUserEditMode"; 129 130 130 131 protected static boolean _derbyWrapperDoneForcedShutdown = false; … … 171 172 this.short_service_info.appendChild(authentication_service); 172 173 173 // set up Authentication service info - for now just has name and type174 174 Element getUserInformation_service = this.doc.createElement(GSXML.SERVICE_ELEM); 175 175 getUserInformation_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_PROCESS); … … 177 177 this.short_service_info.appendChild(getUserInformation_service); 178 178 179 Element changeEditMode_service = this.doc.createElement(GSXML.SERVICE_ELEM); 180 changeEditMode_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_PROCESS); 181 changeEditMode_service.setAttribute(GSXML.NAME_ATT, CHANGE_USER_EDIT_MODE_SERVICE); 182 this.short_service_info.appendChild(changeEditMode_service); 183 179 184 DerbyWrapper.createDatabaseIfNeeded(); 180 185 181 186 NodeList recaptchaElems = info.getElementsByTagName("recaptcha"); 182 187 for (int i = 0; i < recaptchaElems.getLength(); i++) … … 217 222 authen_service.setAttribute(GSXML.NAME_ATT, GET_USER_INFORMATION_SERVICE); 218 223 } 224 else if (service_id.equals(CHANGE_USER_EDIT_MODE_SERVICE)) 225 { 226 authen_service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_PROCESS); 227 authen_service.setAttribute(GSXML.NAME_ATT, CHANGE_USER_EDIT_MODE_SERVICE); 228 } 219 229 else 220 230 { … … 245 255 } 246 256 247 protected Element process GetUserInformation(Element request)257 protected Element processChangeUserEditMode(Element request) 248 258 { 249 259 // Create a new (empty) result message 250 260 Element result = this.doc.createElement(GSXML.RESPONSE_ELEM); 251 261 262 result.setAttribute(GSXML.FROM_ATT, CHANGE_USER_EDIT_MODE_SERVICE); 263 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); 264 265 Element paramList = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 266 if (paramList == null) 267 { 268 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_REQUEST_HAS_NO_PARAM_LIST)); 269 return result; 270 } 271 272 HashMap<String, Serializable> params = GSXML.extractParams(paramList, true); 273 274 String username = (String) params.get("username"); 275 String editMode = (String) params.get("enabled"); 276 277 if (!editMode.toLowerCase().equals("true") && !editMode.toLowerCase().equals("false")) 278 { 279 editMode = "false"; 280 } 281 282 System.err.println("SETTING USER DATA -> " + username + " -> USER_EDIT_ENABLED -> " + editMode); 283 284 DerbyWrapper dw = openDatabase(); 285 dw.addUserData(username, "USER_EDIT_ENABLED", editMode); 286 dw.closeDatabase(); 287 288 return result; 289 } 290 291 protected Element processGetUserInformation(Element request) 292 { 293 // Create a new (empty) result message 294 Element result = this.doc.createElement(GSXML.RESPONSE_ELEM); 295 252 296 result.setAttribute(GSXML.FROM_ATT, GET_USER_INFORMATION_SERVICE); 253 297 result.setAttribute(GSXML.TYPE_ATT, GSXML.REQUEST_TYPE_PROCESS); … … 272 316 DerbyWrapper derbyWrapper = openDatabase(); 273 317 274 try 275 { 276 UserQueryResult userQueryResult = derbyWrapper.findUser(username); 277 278 Vector<UserTermInfo> terms = userQueryResult.getUserTerms(); 279 280 if (terms.size() == 0) 281 { 282 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_REQUESTED_USER_NOT_FOUND)); 283 return result; 284 } 285 286 UserTermInfo userInfo = terms.get(0); 287 Element userInfoList = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 288 result.appendChild(userInfoList); 289 290 Element usernameField = GSXML.createParameter(this.doc, "username", userInfo.username); 291 Element passwordField = GSXML.createParameter(this.doc, "password", userInfo.password); 292 Element groupsField = GSXML.createParameter(this.doc, "groups", userInfo.groups); 293 Element accountStatusField = GSXML.createParameter(this.doc, "accountstatus", userInfo.accountstatus); 294 Element commentField = GSXML.createParameter(this.doc, "comment", userInfo.comment); 295 296 userInfoList.appendChild(usernameField); 297 userInfoList.appendChild(passwordField); 298 userInfoList.appendChild(groupsField); 299 userInfoList.appendChild(accountStatusField); 300 userInfoList.appendChild(commentField); 301 } 302 catch (SQLException ex) 303 { 304 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_SQL_EXCEPTION)); 305 ex.printStackTrace(); 306 } 318 UserQueryResult userQueryResult = derbyWrapper.findUser(username); 319 String editEnabled = derbyWrapper.getUserData(username, "USER_EDIT_ENABLED"); 320 321 Vector<UserTermInfo> terms = userQueryResult.getUserTerms(); 322 323 if (terms.size() == 0) 324 { 325 GSXML.addError(this.doc, result, _errorMessageMap.get(ERROR_REQUESTED_USER_NOT_FOUND)); 326 return result; 327 } 328 329 UserTermInfo userInfo = terms.get(0); 330 Element userInfoList = this.doc.createElement(GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER); 331 result.appendChild(userInfoList); 332 333 Element usernameField = GSXML.createParameter(this.doc, "username", userInfo.username); 334 Element passwordField = GSXML.createParameter(this.doc, "password", userInfo.password); 335 Element groupsField = GSXML.createParameter(this.doc, "groups", userInfo.groups); 336 Element accountStatusField = GSXML.createParameter(this.doc, "accountstatus", userInfo.accountstatus); 337 Element commentField = GSXML.createParameter(this.doc, "comment", userInfo.comment); 338 339 if (editEnabled != null) 340 { 341 Element editEnabledElem = GSXML.createParameter(this.doc, "editEnabled", editEnabled); 342 userInfoList.appendChild(editEnabledElem); 343 } 344 345 userInfoList.appendChild(usernameField); 346 userInfoList.appendChild(passwordField); 347 userInfoList.appendChild(groupsField); 348 userInfoList.appendChild(accountStatusField); 349 userInfoList.appendChild(commentField); 307 350 308 351 derbyWrapper.closeDatabase(); -
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/DerbyWrapper.java
r28219 r28233 335 335 try 336 336 { 337 System.err.println("xx" + conn.isClosed()); 337 338 Statement state = conn.createStatement(); 338 339 ResultSet rs = state.executeQuery("SELECT * FROM " + DATA + " WHERE username='" + username + "' AND name='" + name + "'"); 339 340 conn.commit(); 340 state.close();341 341 if (rs.next()) 342 342 { … … 347 347 found = false; 348 348 } 349 state.close(); 349 350 } 350 351 catch (Exception ex) … … 354 355 { 355 356 printSQLError((SQLException) ex); 357 ex.printStackTrace(); 356 358 } 357 359 else … … 411 413 ResultSet rs = state.executeQuery("SELECT * FROM " + DATA + " WHERE username='" + username + "' AND name='" + name + "'"); 412 414 conn.commit(); 413 state.close();414 415 if (rs.next()) 415 416 { 416 417 return rs.getString("value"); 417 418 } 419 state.close(); 418 420 } 419 421 catch (Exception ex) … … 423 425 { 424 426 printSQLError((SQLException) ex); 427 ex.printStackTrace(); 425 428 } 426 429 else … … 607 610 // findUser(null) will return all users, which is why a UserQueryResult 608 611 // (a vector of UserTermInfo) is returned 609 public UserQueryResult findUser(String username) throws SQLException612 public UserQueryResult findUser(String username) 610 613 { 611 614 UserQueryResult userQueryResult = new UserQueryResult(); … … 625 628 ArrayList<HashMap<String, String>> users = new ArrayList<HashMap<String, String>>(); 626 629 627 Statement state = conn.createStatement();628 ResultSet rs = state.executeQuery(sql_find_user);629 conn.commit();630 while (rs.next())631 {632 HashMap<String, String> user = new HashMap<String, String>();633 user.put("username", rs.getString("username"));634 user.put("password", rs.getString("password"));635 user.put("as", rs.getString("accountstatus"));636 user.put("comment", rs.getString("comment"));637 user.put("email", rs.getString("email"));638 639 users.add(user);640 } 641 state.close();642 643 state = conn.createStatement();644 for (HashMap<String, String> user : users) 645 {646 ResultSet gs = state.executeQuery("SELECT role FROM " + ROLES + " WHERE username = '" + user.get("username") + "'");647 conn.commit();648 649 String group = "";650 while (gs.next()) 651 {652 if (!group.equals(""))630 try 631 { 632 Statement state = conn.createStatement(); 633 ResultSet rs = state.executeQuery(sql_find_user); 634 conn.commit(); 635 while (rs.next()) 636 { 637 HashMap<String, String> user = new HashMap<String, String>(); 638 user.put("username", rs.getString("username")); 639 user.put("password", rs.getString("password")); 640 user.put("as", rs.getString("accountstatus")); 641 user.put("comment", rs.getString("comment")); 642 user.put("email", rs.getString("email")); 643 644 users.add(user); 645 } 646 state.close(); 647 648 state = conn.createStatement(); 649 for (HashMap<String, String> user : users) 650 { 651 ResultSet gs = state.executeQuery("SELECT role FROM " + ROLES + " WHERE username = '" + user.get("username") + "'"); 652 conn.commit(); 653 654 String group = ""; 655 while (gs.next()) 653 656 { 654 group += ","; 657 if (!group.equals("")) 658 { 659 group += ","; 660 } 661 group += gs.getString("role"); 655 662 } 656 group += gs.getString("role"); 657 } 658 659 userQueryResult.addUserTerm(user.get("username"), user.get("password"), group, user.get("as"), user.get("comment"), user.get("email")); 660 } 661 state.close(); 663 664 userQueryResult.addUserTerm(user.get("username"), user.get("password"), group, user.get("as"), user.get("comment"), user.get("email")); 665 } 666 state.close(); 667 } 668 catch (Exception ex) 669 { 670 ex.printStackTrace(); 671 } 662 672 663 673 if (userQueryResult.getSize() > 0)
Note:
See TracChangeset
for help on using the changeset viewer.